使用hibernate4
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; }
运行时报异常
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to entiey.User
后来多方查找,发现有这样一种写法
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; }
试了下,果然正常了。原来查询后要加上
addEntity(User.class)