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类型数据。

后面的使用都是一样的了。

相关推荐