您的位置:首页 > 产品设计 > UI/UE

Hibernate中createQuery与createSQLQuery两者的区别

2013-05-30 17:05 483 查看
最近几天在写项目,遇到了一个错: Struts has detected an unhandled exception:Messages:ORA-00933: SQL ???????could not execute querycould not execute query; SQL [ select count(*) from www.csdn.weibo.domain.Pictures where 1=1 and picture_type='aaa']; nested exception
is org.hibernate.exception.SQLGrammarException: could not execute queryFile: oracle/jdbc/driver/DatabaseError.javaLine number: 112Stacktracesorg.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL [ select count(*) from www.csdn.weibo.domain.Pictures
where 1=1 and picture_type='aaa']; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query在论坛发贴了,看到大家的回复我也改了改,还是没查询不到,于是乎请教老师吧,老师上来就看出问题了,唉唉,并且要我细看hibernate ,createQuery与createSQLQuery两者的区别,所以我先把我的错误展示给大家,然后再看他们的区别。终于找到问题了 原来是把createQuery和createSQLQuery弄混了,在baseDaoImpl.java
里边我原来写的是Java code?
在jsp中拼接sql语句中写的是Java code?
应该改为这样的,Java code?
Java code?
下面是从网上找的很有用:


createQuery与createSQLQuery区别 :

前者用的hql语句进行查询,后者可以用sql语句查询前者以hibernate生成的Bean为对象装入list返回后者则是以对象数组进行存储所以使用createSQLQuery有时候也想以hibernate生成的Bean为对象装入list返回,就不是很方便突然发现createSQLQuery有这样一个方法可以直接转换对象Query query = session.createSQLQuery(sql).addEntity(XXXXXXX.class);XXXXXXX 代表以hibernate生成的Bean的对象,也就是数据表映射出的Bean。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: