使用hibernate4java
public boolean exists(User user) { SessionFactory factory = configureSessionFactory(); Session session = factory.getCurrentSession(); T ransaction transaction = session.beginTransaction(); String sql = "select * FROM user"; Query q = session.createSQLQuery(sql); List<User> list = q.list(); transaction.commit(); for(User temp:list){ if(temp.getUname().equals(user.getUname())){ return true; } } return false; }
運行時報異常sql
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to entiey.User
後來多方查找,發現有這樣一種寫法session
public boolean exists(User user) { SessionFactory factory = configureSessionFactory(); Session session = factory.getCurrentSession(); Transaction transaction = session.beginTransaction(); String sql = "select * FROM user"; Query q = session.createSQLQuery(sql).addEntity(User.class); List<User> list = q.list(); transaction.commit(); for(User temp:list){ if(temp.getUname().equals(user.getUname())){ return true; } } return false; }
試了下,果真正常了。原來查詢後要加上hibernate
addEntity(User.class)