JPA如何查询原生SQL转换VO对象方式
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,小编给大家分享一下JPA如何查询原生SQL转换VO对象方式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JPA查询原生SQ
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
国家网络安全法考试题
终端射频芯片软件开发
软件开发合同范围
港闸区智能网络技术诚信经营
服务器怎么找对应的盘位
十台电脑组建服务器
如何查看数据库的分页
软件开发可以找外包公司吗
怎么用exal建立数据库
全民k歌显示数据库缺少条目
软件开发一般年终奖多少
数据库架构管理优化
云服务器自建p2p摄像头
计算机网络技术要学些什么的
电话号码 数据库
sql数据库备份地址查看
软件开发和技术工程的区别
加强监督检查保障网络安全
望城区安卓软件开发师
网络安全专员证书
ubuntu 翻墙服务器
产品经理与软件开发哪个好
浪潮服务器 存储
软件开发为啥必须计算机专业
成利北京网络技术有限公司
徐州软件开发大概多少价格
佛山教育软件开发电话
工业互联网络安全概念股
软件开发过程的四个阶段
文明重启开荒选什么服务器最好