前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hibernate里使用SQLQuery

Hibernate里使用SQLQuery

作者头像
jeremyxu
发布2018-05-10 17:44:54
9470
发布2018-05-10 17:44:54
举报
文章被收录于专栏:jeremy的技术点滴

最近在做一个老旧项目,项目后台使用了hibernate。以前虽说也用过hibernate,但用得不够深入,一般最多两个表关联查询一下,比较简单。

但今天在项目有一个需求,要求5个表进行关联查询,这样hibernate试了很久,发现还是搞不定。于是尝试在hibernate里直接使用SQL。在这个地方遇到了坑,卡了很久。最终解决了问题,这里记录一下。

Hibernate里使用SQL

代码语言:javascript
复制
StringBuilder sql = new StringBuilder();
//这里开始拼装sql语句
//创建SQLQuery对象
SQLQuery sqlQuery = getSession().createSQLQuery(sql.toString());
//调用addScalar, 说明取结果集里的哪些字段, 字段被映射为哪种类型
sqlQuery.addScalar("column1", Hibernate.LONG);
sqlQuery.addScalar("column2", Hibernate.STRING);
sqlQuery.addScalar("column3", Hibernate.STRING);
//设置取的结果集行数
sqlQuery.setFirstResult(...);
sqlQuery.setMaxResults(...);
//设置将对象转化为Cto对象, 注意Cto对象的各属性类型要与addScalar里指明的一致
sqlQuery.setResultTransformer(Transformers.aliasToBean(TestCto.class));
//返回TestCto的List列表
return sqlQuery.list();

上述代码中的说明很详细了,就不解释了。

总结

hibernate里使用SQL真心很累,还是MyBatis大法好。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hibernate里使用SQL
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档