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类型数据。
后面的使用都是一样的了。