hibernate原生sql分页
HQL:
hibernate不支持select子查询,from子查询,on关键字
碰上这三类情况,
方案一:原生sql。用了,踩坑走完了。所以有了这篇随笔。
方案二:虚拟实体。还没用过
hibernate原生sql问题:
entityManager.createNativeQuery;
原生SQL查询完后,结果集问题:
1. 指定entity。那就返回那个实体
2. 不指定,多行多列返回List<Object[]>,多行单列返回List<Obect>
以为这就完了?不,这才刚开始
分页查询时,从第二页开始,只要list的size>0。返回结果集内就会多个ROWNUM_的属性。不注意这个属性,直接强转Object,就会直接挂!
这时,map,万能的神
hibernate可能在5.2版本后,从unwrap,从SQLQuery.class换成了NativeQueryImpl.class,这时就有了该表达式
query.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
ok,令结果集返回map了。map的key都是大写。可能原生sql入库转sql就是自动转大写了。没看源码前,谁也不知道。以后有条件记得翻翻这块源码是不是转大写了
解析map返回吧。
另外,有需要可以map转vo对象。
__EOF__
本文作者:九五挥了挥手
本文链接:https://www.cnblogs.com/louis95/p/17309241.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/louis95/p/17309241.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架