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 动态参数查询案例分析相关推荐

  1. Spring Data JPA 之 @Query 语法详解及其应用

    5 Spring Data JPA 之 @Query 语法详解及其应用 5.1 快速体验 @Query 的方法 沿⽤我们之前的例⼦,新增⼀个 @Query 的⽅法: // 通过 query 注解根据 ...

  2. 【Spring Data JPA自学笔记三】Spring Data JPA的基础和高级查询方法

    文章目录 调用接口的基础方法查询 Repository CrudRepository PagingAndSortingRepository JPARepository JpaSpecification ...

  3. Spring Data JPA 实现多表关联查询

    原文链接:https://blog.csdn.net/johnf_nash/article/details/80587204 多表查询在spring data jpa中有两种实现方式,第一种是利用hi ...

  4. Spring Data JPA 从入门到精通~查询结果的处理

    参数选择(Sort/Pageable)分页和排序 特定类型的参数,Pageable 并动态 Sort 地将分页和排序应用于查询 案例:在查询方法中使用 Pageable.Slice 和 Sort. P ...

  5. Spring Data JPA 多条件判空查询

    Spring Data JPA虽然大大的简化了持久层的开发,但是在实际开发中,很多地方都需要高级动态查询. 使用@Query注解,这种方式可以直接在Repository里面写sql,但是这种方式的问题 ...

  6. Spring Data JPA REST Query QueryDSL

    案例概述 在本教程中,我们将研究使用Spring Data JPA和Querydsl为REST API构建查询语言. 在本系列的前两篇文章中,我们使用JPA Criteria和Spring Data ...

  7. jpa多表联查动态_Spring Data JPA 连表动态条件查询

    多表查询在spring data jpa中有两种实现方式,第一种是利用hibernate的级联查询来实现(使用较为复杂,查询不够灵活),第二种是使用原生sql查询. JPA原生SQL连表查询 @Rep ...

  8. Spring Data Jpa多表联合分页查询

    参考:https://blog.csdn.net/qq_36144258/article/details/80298354 近期一个项目用到Spring Data Jpa,Jpa用来做单表查询非常的简 ...

  9. Spring Data Jpa使用@Query时 报错Validation failed for query for method public abstract

    问题:在使用Spring Data Jpa作为持久化层,在使用@Query注解时出现以下错误: Validation failed for query for method public abstra ...

  10. java 注解 jpa_详解Spring Data JPA使用@Query注解(Using @Query)

    经过几天的折腾,终于到了学习一个重量级的查询方式上,使用@query注解,使用注解有两种方式,一种是jpql的sql语言方式,一种是原生sql的语言,略有区别,后者我们更熟悉一些.话不多说,看代码. ...

最新文章

  1. linux 互斥锁销毁_c-销毁锁定的互斥锁时pthread_mutex_destroy的正...
  2. 【AI-1000问】为什么OpenCV读取的图像格式是BGR?
  3. BFC与IFC概念理解+布局规则+形成方法+用处
  4. N*N匹马,N个赛道,求出最快N匹马的解法
  5. Shiro安全框架-简介
  6. 求圆和椭圆上任意角度的点的坐标
  7. Android Studio属性动画,Android开发-RecyclerView-AndroidStudio(六)属性动画(3)AddDuration
  8. Oracle基础函数
  9. 大江大海 —— 淮河、澜沧江(湄公河)
  10. 非double型数值-整型数据类型
  11. listenfd ---- accept事件
  12. banner 获取当前指示物_ConvenientBanner使用指南
  13. java 缓存ech_java ehcache 分布式缓存配置实例 .
  14. [转贴]Unix-Center.Net需要您的帮助
  15. 凌晨3点回去后的想法
  16. xshell 输入w 命令后报错 66 column window is too narrow
  17. 看单片机原理图-红外遥控、EEPROM
  18. NetSuite BOM材料产出率舍入
  19. java基础:面向对象编程23-this课后练习boygirl
  20. python脚本开头怎么写_浅谈Python脚本开头及导包注释自动添加方法

热门文章

  1. php 实现公众号模板消息url 跳转
  2. DX11编程之计算着色过滤器
  3. php 集成 spss,spss怎么录入数据
  4. 1.CLUSTERDOWN Hash slot not served
  5. linux去除文件中重复行,2.25 uniq(检查及删除文本文件中重复出现的行列)
  6. 关于长论文word转PDF,出现图等错误解决办法
  7. 嵌入式、单片机和PLC哪个前景好一些?
  8. Mac怎么锁屏?苹果电脑怎么锁定屏幕
  9. 【打卡算法】 26、删除有序数组中的重复项 算法解析
  10. android设置高度比例,Android View设置宽高比