前言

这次有个需求,需要动态的sql语句去查询,但是@Query正常情况下SQL语句是写死的,在查找了很多资料后,想到了一个好的解决办法

思路

利用MYSQL的判断来拼接SQL语句

实现

先上代码

@Query(value = "select * from project_demand where project_id=?1 and if(?2!='',demand_id in (select demand_id from demand_user where user_id=?2),1=1)",nativeQuery = true)
List<ProjectDemand> getListByUser(String projectId,String userId);
@Query(value = "select * from project_demand where project_id=?1 and if(?2!='',demand_id in (select demand_id from demand_user where user_id=?2),1=1)",nativeQuery = true)

红色部分,就是生成动态SQL的方法,利用MYSQL的if函数和我们传递的参数去进行判断,然后获取SQL语句。

SpringData JPA @Query动态SQL语句相关推荐

  1. Mybatis Plus 是如何实现动态 SQL 语句的?原理你懂吗?

    作者 | 稻草江南 来源 | https://juejin.cn/post/6883081187103866894 Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,那么它是怎么 ...

  2. 7.平凡之路-动态SQL语句

    动态SQL语句是核心之一,这里我们通过几个示例来演示 一 多条件查询专题 1.通过恒等式完成动态SQL语句 涉及到if标签 <mapper namespace="com.shxt.mo ...

  3. 学习SQL应知道的动态SQL语句基本语法

    学习SQL应知道的动态SQL语句基本语法 1 .普通SQL语句可以用Exec执行 9Kp=A   ' CdaFr1   eg: Select * from tableName Wsc+A:<&q ...

  4. Oracle基础 动态SQL语句

    一.静态SQL和动态SQL的概念. 1.静态SQL 静态SQL是我们常用的使用SQL语句的方式,就是编写PL/SQL时,SQL语句已经编写好了.因为静态SQL是在编写程序时就确定了,我们只能使用SQL ...

  5. 动态SQL语句--mybatis

    转自:http://www.blogjava.net/Steven-bot/articles/363460.html 动态SQL语句--mybatis 动态SQL语句         有些时候,sql ...

  6. oracle中执行动态sql语句吗,oracle中有没有可动态执行sql语句的函数

    oracle中有没有可动态执行sql语句的函数 关注:233  答案:2  手机版 解决时间 2021-03-05 15:53 提问者祗剩寂寞 2021-03-04 22:38 oracle中有没有可 ...

  7. Sql Server实用操作-动态sql语句基本语法

    如何将exec执行结果放入变量中? declare @num int, @sqls nvarchar(4000) set @sqls='select @a=count(*) from tableNam ...

  8. IBatis.net动态SQL语句

    在学习动态SQL语句之前,首先必须对条件查询有一定了解,先来学习如何向IBatis.Net的映射文件里传入参数. 一.条件查询 1.传递单个参数 如根据Id查询: <select id=&quo ...

  9. Mybatis映射文件动态SQL语句-01

    因为在很多业务逻辑复杂的项目中,往往不是简单的sql语句就能查询出来自己想要的数据,所有mybatis引入了动态sql语句, UserMapper.xml <?xml version=" ...

最新文章

  1. 关于导出excel 把一个dataset的多个datatable导入到一个excel的多个sheet中
  2. 你知道怎么在生产环境下部署tomcat吗?,灵魂拷问
  3. Docker 学习资源整理
  4. go sync.map 源码分析
  5. 索尼XA3曝光:同样是21:9屏幕 带鱼手机屏或成新潮流
  6. 开源GIS(四)——openlayers中geoserver发布的WMS与WFS加载
  7. 前端切换视图_前端开发的10个软件工具,用过3个就是大神!
  8. Android 自定义标题栏(title栏)
  9. ACM-ICPC 2018 徐州赛区网络预赛 J Maze Designer(最大生成树+LCA)
  10. 爬虫常用的user_agent
  11. Ubuntu下SMPlayer播放器安装配置以及常用快捷键记录
  12. 微信小程序自定义导航栏;uni-app微信小程序自定义顶部导航栏;微信小程序顶部导航栏高度;微信小程序左上角胶囊按钮;uni-app微信小程序左上角胶囊设置
  13. 数控铣削图案及编程_数控铣削编程与操作设计有全套图纸.doc
  14. 金山打字通——绿色安全无捆绑下载
  15. 华为狼性文化遭质疑,那我们当个佛系程序员可好?
  16. html的特殊符号五角星,五角星怎么打出来?打出五角星符号的方法
  17. python做桌面宠物_如何从零开始制作智能桌宠?
  18. hazelcast 搭建_Spring Boot集成Hazelcast实现集群与分布式内存缓存
  19. CSDN ARIMA R语言_R语言时间序列:ARIMA / GARCH模型的交易策略在外汇市场预测应用...
  20. vue-loader

热门文章

  1. taskAffinity属性的奇特效果
  2. 做抖音快手如何快速涨粉
  3. Webdriver常用及基础方法
  4. 好用的图片转换器:SizeMyPics for Mac
  5. Python实现前向逐步回归
  6. full join关联表
  7. Bootstrap基本介绍及运用
  8. 大数据获取方法;数据采集工具;常用ETL工具简介
  9. 安全实践:webshell检测
  10. html如何插入avi视频,学用系列|希沃云课堂无法播放插入视频?看这里一招搞定视频转换...