Hibernate中使用SQL语句的误用

当发生如下异常时:

org.hibernate.QueryException: addEntity() or addScalar() must be called on a sql query before executing the query. [sql]

第一方案:

应该检查是不是
Query query=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类型数据。

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

你可能感兴趣的:(java,sql,Hibernate)