java jpa怎么自定义sql语句
发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,本篇内容介绍了"java jpa怎么自定义sql语句"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!j
千家信息网最后更新 2025年01月22日java jpa怎么自定义sql语句
本篇内容介绍了"java jpa怎么自定义sql语句"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
java jpa自定义sql语句
本篇只是为了再次记录自己又学习了jpa的使用,框架原生的通过解析方法名多适用于单表操作,自定义的sql查询则可以解决所有问题,记录些自定义sql语法的记录,以便后续参照。
1.多表关联查询,含条件
@Query(value = "SELECT b FROM QyVideo a JOIN YjQyXx b ON a.qyId = b.id AND a.cameraId = ?1 ")
2.清空表
@Transactional@Modifying@Query(value = "truncate table yj_qy_xx", nativeQuery = true)
注:update、truncate或delete时必须使用@Modifying和@Transactional对方法进行注解,才能使得ORM知道现在要执行的是写操作。
3.模糊查询
@Query("select p from WhpzxryzsXxPo p where p.ryxm like concat('%',?1,'%') and p.cyyxqq >= ?2")
4.查询结果为VO
含两个实体类
@Query(value = "SELECT new com.kun.aqsczt.vo.FxjzfbVo(u, seventinfo) FROM SSmsInfo u left join SEventInfo seventinfo on u.referId = seventinfo.eventId WHERE (:referType IS NULL OR :referType IS '' OR u.referType = :referType) AND (:isSend IS NULL OR :isSend IS '' OR u.isSend = :isSend) ")
5.使用@Param注解注入参数
分页查询
@Query(value = "SELECT a FROM CEiWorkaccMaybe a " + "WHERE (:psnName IS NULL OR :psnName IS '' OR a.psnName LIKE %:psnName%) " + "AND (:commName IS NULL OR :commName IS '' OR a.commName LIKE %:commName%) " + "AND (:idCard IS NULL OR :idCard IS '' OR a.idCard LIKE %:idCard%) " + "AND (:doctorDateStart IS NULL OR :doctorDateStart IS '' OR a.doctorDate >= :doctorDateStart) " + "AND (:doctorDateEnd IS NULL OR :doctorDateEnd IS '' OR a.doctorDate <= :doctorDateEnd) " )PagegetSuspectedWorkAccidentVerification( @Param("psnName") String psnName, @Param("commName") String commName, @Param("idCard") String idCard, @Param("doctorDateStart") String doctorDateStart, @Param("doctorDateEnd") String doctorDateEnd, Pageable pageable );
无非是把日常的sql中的表名换成了对应的实体类名,接收参数适用 ?加上第几个参数的几。当然也可使用@Param注解注入参数,就变成了使用 :参数 名称接收。
jpa自定义sql查询结果
很多时候都会遇到自定义sql,自定义返回字段,而不是pojo类。这个情况要通过接口定义返回。
直接上代码
@Query(value = "select m.field AS field,COUNT(m.field) AS size from MigrationObject m where m.xmlName = ?1 and m.groupName = ?2 group by m.field") ListgetKey(String xmlName, String groupName);
对于这种情况,只返回了两个字段,就需要定义一个接口来接收(注意AS别名的配置)
public interface WorkCenter { String getField(); String getSize();}
最后跑一下demo代码
Listlist = migrationObjectRepository.getKey("EN_Work centerResource.xml","Key"); for (WorkCenter workCenter:list){ System.out.println(workCenter.getField()); System.out.println(workCenter.getSize()); }
ARBPL
5
SPRAS
2
CANUM
2
ENDDA
1
WERKS
5
"java jpa怎么自定义sql语句"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
查询
参数
语句
情况
注解
两个
代码
内容
字段
实体
接口
方法
更多
知识
结果
学习
实用
学有所成
接下来
再次
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
江苏服务器电源采购
源代码开源数据库
国家网络安全大楼图片
中小学生网络安全班会ppt
数据库 日期存储
服务器安全等保
航班订票系统数据库信息
浪潮服务器报错系统故障
web系统用哪个软件开发
澳兴数据库
2022中国网络安全会议精神
本届互联网之光博览会上的黑科技
江阴什么网络技术创造辉煌
巴彦im即时通讯软件开发
链接网页数据库
格式化合同编辑软件开发
公共wifi大数据库
圆通子系统数据库安装教程
如何转储sql数据库
未来10年网络安全市场
软件开发开票时候单位是什么
日本没有5g网络技术吗
戴尔存储服务器硬盘
张湾区正规软件开发包括哪些
烘箱智能控制方法研究及软件开发
ajax请求服务器中的json
网络安全简单漂亮小报
软件开发累的上市公司
软件开发上线阶段
数据库拒绝了一切数据的重复吗