JPA如何查询原生SQL转换VO对象方式
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,小编给大家分享一下JPA如何查询原生SQL转换VO对象方式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JPA查询原生SQ
千家信息网最后更新 2025年11月07日JPA如何查询原生SQL转换VO对象方式
小编给大家分享一下JPA如何查询原生SQL转换VO对象方式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
JPA查询原生SQL转换VO对象
ListsqlList = RiverCourseSql.getRiverCourseSQLString(new RiverCourseDataQO()); List riverCourseDataVO = rsvrfsrBDao.executeNativeQuery2Obj(sqlList.get(0), new PageQO(), RiverCourseDataVO.class);
查询sql,然后执行功能方法。
List executeNativeQuery2Obj(String sql, SortQO sortQO, Class clz);public List executeNativeQuery2Obj(String sql, SortQO sortQO, Class clz) { Query query = this.entityManager.createNativeQuery(sql); this.setAliasParameter(query, sortQO); ((NativeQueryImpl)query.unwrap(NativeQueryImpl.class)).setResultTransformer(Transformers.aliasToBean(clz)); List resultList = query.getResultList(); return resultList; }
JPA非注解方式原生sql查询的一些注意事项
背景:DDD系统里面有复杂的聚合统计,代码组装数据不方便
import javax.persistence.EntityManager;import javax.persistence.Query;@Autowiredprivate EntityManager entityManager;
这里直接用自定义VO接收,sql返回结果集必须是VO的子集,不然组装数据会报错,说白了就是sql查询结果的字段必须全在vo里对应,vo可以有多余字段,但sql结果不能有多余字段
String sql = "sql";Query nativeQuery = entityManager.createNativeQuery(sql);
给sql里动态传参设置参数 := param ,注意in后面传数组的话,根据版本不一样,有的要加括号,有的不要加,直接传数据进去就行
nativeQuery.setParameter(String var1, Object var2);
这是当前不过时的方法,将sql查询结果转成自定义VO
Transformers可以转成list和vo,nativeQueryImplementor也能转成list和vo
NativeQueryImplementor nativeQueryImplementor = nativeQuery.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.aliasToBean(VO.class));VO vo = new VO();try {// 这里有个坑,如果返回结果为空的话,会报错,要捕获这个异常,再进一步操作 vo = (VO)nativeQueryImplementor.getSingleResult();} catch (EntityNotFoundException e) { e.printStackTrace(); return vo ;}目前就这些了。
以上是"JPA如何查询原生SQL转换VO对象方式"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
查询
结果
对象
方式
字段
数据
篇文章
内容
方法
会报
复杂
过时
再进一步
说白了
不怎么
事项
代码
功能
动态
参数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发集成环境搭建
常州专业服务器工厂
银行 网络安全宣传周
网络安全称号奖牌
服务器装系统卡住
数据库关系运算代数表达
哪种方法不能有效删除数据库
数据库操作学习
2021年研究生网络安全调剂
服务器两块硬盘被同时拔出
东城区网络技术信息哪个好
服务器CDB是什么
哪些方面会运用到数据库
网络安全防护儿歌
自考数据库系统原理串讲笔记
公共应急网络安全
日期数据库类型转换
网络技术期末考试北京大学
数据库 归档模式
河北霸州网络安全宣传
专业网络技术优势
武穴实小网络安全宣传活动
知网算几个数据库
数据库原理技术与应用难吗
如何查数据库的数据量
记账软件开发的目的
国家网络安全的目标包括
网页加数据库
世界上最早建立的数据库
农村信用社app服务器连接失败