java jpa怎么自定义sql语句
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容介绍了"java jpa怎么自定义sql语句"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!j
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
广东猪兼强互联网科技有限公司
互联网与科技发展
互联网科技社
科技信息互联网
网络科技有限互联网
科技制造互联网公司
迪茉互联网科技
汇久创客互联网科技
无线互联网科技
上海卓越科技 互联网
互联网科技股午盘股票涨跌
深圳市运趣互联网科技有限公司
宁夏科技产业互联网案例
银川新华互联网科技学校联系电话
内蒙古九一互联网科技
21世纪互联网科技成就
2021世界互联网领先科技成果发布
互联网科技平台产品运营
互联网科技和医药行业
互联网科技大佬云集
新华互联网科技学院
奇酷互联网科技
美国互联网黑科技
来此购互联网科技有限公司
如何创新互联网科技
华夏恒生科技与互联网科技
朱啸虎曾投资哪些互联网科技企业
群盈汇互联网科技有限公司
北京市互联网新科技
陕西九四连强互联网科技有限公司