Hibernate中使用SQL语句的误用
当发生如下异常时:
org.hibernate.QueryException:addEntity()oraddScalar()mustbecalledonasqlquerybeforeexecutingthequery.[sql]
第一方案:
应该检查是不是
Queryquery=session.createSQLQuery(hql);的错误
如果确定要使用的是hql时,在hibernate中应改为:
Query query=session.createQuery(hql);
第二方案:
createSQLQuery一定要用addEntity方法
例如:实体类名为Student
String sql = "select * from student as stu";
即 Query query = session.createSQLQuery(sql).addEntity("stu",Student.class);// 告知Hibernate的list中的返回值设置成Student类型数据。后面的使用都是一样的了。