用Hibernate高版本的时候可以用session.create SqlQuery(“原生sql”);
但是现在让我换低版本Hibernate,我执行原生Sql的时候报错误!我应该用什么办法,能修改少量代码就能让低版本Hibernate
支持原生Sql,我暂时从session获取connection然后在用,
Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql);原始的JDBC方法操作。
但是感觉这样解决方法感觉不太好!不知道有什么好办法吗?
但是现在让我换低版本Hibernate,我执行原生Sql的时候报错误!我应该用什么办法,能修改少量代码就能让低版本Hibernate
支持原生Sql,我暂时从session获取connection然后在用,
Statement stmt=con.createStatement();ResultSet rs=stmt.executeQuery(sql);原始的JDBC方法操作。
但是感觉这样解决方法感觉不太好!不知道有什么好办法吗?
hql:Query query = session.createQuery(hql);
return getHibernateTemplate().getSessionFactory().openSession()
.createSQLQuery(" select filed1,sum(filed2)ad gFiled2 from tableA group by gFiled2")
.list();org.hibernate.QueryException: addEntity() or addScalar() must be called on a sql query before executing the query. [select filed1,sum(filed2)ad gFiled2 from tableA group by gFiled2]
at org.hibernate.impl.SQLQueryImpl.verifyParameters(SQLQueryImpl.java:169)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:140)
return getHibernateTemplate().getSessionFactory().openSession()
.createSQLQuery(" select filed1,sum(filed2)ad gFiled2 from tableA group by gFiled2")
.list(); org.hibernate.QueryException: addEntity() or addScalar() must be called on a sql query before executing the query. [select filed1,sum(filed2)ad gFiled2 from tableA group by gFiled2]
at org.hibernate.impl.SQLQueryImpl.verifyParameters(SQLQueryImpl.java:169)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:140)
select filed1,sum(filed2)ad gFiled2 from tableA group by filed1
Query query = session.createSQLQuery(sql);
List list=query.list();//这样就可查出数据了
Query query = session.createSQLQuery(sql).addEntity("",Class.class);
List list=query.list();//这样就可查出数据了