spring data jpa 使用@Query 动态参数查询案例分析
1、目的
要做复杂的动态查询,需要判断是否非空的查询参数,当参数为空时,跳过该参数,继续查找不为空的参数进行查询。
2、代码分析
nativeQuery = true:表示使用原生的sql语句
判断语句的格式:if(‘参数’ is not null and ‘参数’=’’,查找的条件 ),如下判断语句
if(?1 is not null and ?1!=’’,video_id=?1,1=1)
其中?1表示方法中的第一个参数,如下面的videoId,以此类推
在查找的条件中,我们可以进行模糊查找video_title like concat(’%’,?2,’%’),等值判断video_id=?1,具体看需要
List findVideoByLike(Integer videoId,String videoTitle);
@Query(nativeQuery = true,value = "select * from video where if(?1 is not null and ?1!='',video_id=?1,1=1) and if(?2 is not null and ?2!='',video_title like concat('%',?2,'%'), 1=1)")List<Video> findVideoByLike(Integer videoId,String videoTitle);
}
spring data jpa 使用@Query 动态参数查询案例分析相关推荐
- Spring Data JPA 之 @Query 语法详解及其应用
5 Spring Data JPA 之 @Query 语法详解及其应用 5.1 快速体验 @Query 的方法 沿⽤我们之前的例⼦,新增⼀个 @Query 的⽅法: // 通过 query 注解根据 ...
- 【Spring Data JPA自学笔记三】Spring Data JPA的基础和高级查询方法
文章目录 调用接口的基础方法查询 Repository CrudRepository PagingAndSortingRepository JPARepository JpaSpecification ...
- Spring Data JPA 实现多表关联查询
原文链接:https://blog.csdn.net/johnf_nash/article/details/80587204 多表查询在spring data jpa中有两种实现方式,第一种是利用hi ...
- Spring Data JPA 从入门到精通~查询结果的处理
参数选择(Sort/Pageable)分页和排序 特定类型的参数,Pageable 并动态 Sort 地将分页和排序应用于查询 案例:在查询方法中使用 Pageable.Slice 和 Sort. P ...
- Spring Data JPA 多条件判空查询
Spring Data JPA虽然大大的简化了持久层的开发,但是在实际开发中,很多地方都需要高级动态查询. 使用@Query注解,这种方式可以直接在Repository里面写sql,但是这种方式的问题 ...
- Spring Data JPA REST Query QueryDSL
案例概述 在本教程中,我们将研究使用Spring Data JPA和Querydsl为REST API构建查询语言. 在本系列的前两篇文章中,我们使用JPA Criteria和Spring Data ...
- jpa多表联查动态_Spring Data JPA 连表动态条件查询
多表查询在spring data jpa中有两种实现方式,第一种是利用hibernate的级联查询来实现(使用较为复杂,查询不够灵活),第二种是使用原生sql查询. JPA原生SQL连表查询 @Rep ...
- Spring Data Jpa多表联合分页查询
参考:https://blog.csdn.net/qq_36144258/article/details/80298354 近期一个项目用到Spring Data Jpa,Jpa用来做单表查询非常的简 ...
- Spring Data Jpa使用@Query时 报错Validation failed for query for method public abstract
问题:在使用Spring Data Jpa作为持久化层,在使用@Query注解时出现以下错误: Validation failed for query for method public abstra ...
- java 注解 jpa_详解Spring Data JPA使用@Query注解(Using @Query)
经过几天的折腾,终于到了学习一个重量级的查询方式上,使用@query注解,使用注解有两种方式,一种是jpql的sql语言方式,一种是原生sql的语言,略有区别,后者我们更熟悉一些.话不多说,看代码. ...
最新文章
- linux 互斥锁销毁_c-销毁锁定的互斥锁时pthread_mutex_destroy的正...
- 【AI-1000问】为什么OpenCV读取的图像格式是BGR?
- BFC与IFC概念理解+布局规则+形成方法+用处
- N*N匹马,N个赛道,求出最快N匹马的解法
- Shiro安全框架-简介
- 求圆和椭圆上任意角度的点的坐标
- Android Studio属性动画,Android开发-RecyclerView-AndroidStudio(六)属性动画(3)AddDuration
- Oracle基础函数
- 大江大海 —— 淮河、澜沧江(湄公河)
- 非double型数值-整型数据类型
- listenfd ---- accept事件
- banner 获取当前指示物_ConvenientBanner使用指南
- java 缓存ech_java ehcache 分布式缓存配置实例 .
- [转贴]Unix-Center.Net需要您的帮助
- 凌晨3点回去后的想法
- xshell 输入w 命令后报错 66 column window is too narrow
- 看单片机原理图-红外遥控、EEPROM
- NetSuite BOM材料产出率舍入
- java基础:面向对象编程23-this课后练习boygirl
- python脚本开头怎么写_浅谈Python脚本开头及导包注释自动添加方法