hibernate 中 createSQLQuery() 用法,我想让它返回一个book对象,怎么写语句。

SessionFactorysf=HibernateUtil.getSessionFactory();Sessions=sf.getCurrentSession();s.... SessionFactory sf = HibernateUtil.getSessionFactory();
Session s = sf.getCurrentSession();
s.beginTransaction();
SQLQuery sqlquery = s.createSQLQuery("select * from Book b where b.name = bookName").addEntity("b",Book.class);
List<Book> list = sqlquery.list();
s.getTransaction().commit();
return list;
这个写就不对,返回不了想要的结果,请高手指点迷津!不胜感激!!
另外在下面给小弟介绍一下,这个createSQLQuery()的用法。谢谢
结果如果很满意,另加高分。。。
SessionFactory sf = HibernateUtil.getSessionFactory();
Session s = sf.getCurrentSession();
s.beginTransaction();
List<Book> sqlquery = s.createSQLQuery("select * from book where name = bookName").addEntity("b",Book.class).list();
s.getTransaction().commit();

这个不会有错了吧,它查询的是什么值,List?还是BOOK?
展开
 我来答
cheerup360
推荐于2016-08-24 · TA获得超过120个赞
知道答主
回答量:133
采纳率:0%
帮助的人:53.5万
展开全部
SessionFactory sf = HibernateUtil.getSessionFactory();
Session s = sf.getCurrentSession();
s.beginTransaction();
Book book=(Book)s.createSQLQuery("select * from Book b where b.name = bookName").addEntity("b",Book.class);
s.getTransaction().commit();
return book;
使用SQLQuery对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。
呼吸只愿为人谋J
2010-08-23 · TA获得超过295个赞
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:83.1万
展开全部
看上去,你的写法应该没啥问题。
不过这个b又不是占位符,你又是单表的查询,是不是应该把b去掉啊。
SQLQuery sqlquery = s.createSQLQuery("select * from Book b where b.name = bookName").addEntity(Book.class);

参考:http://hi.baidu.com/liheng666/blog/item/6b38d3c472d271a08226aca7.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式