学习记录687@spring data jpa 动态传递list参数并判断list是否为空

实际应用中需要在spring data jpa中使用原生sql,传递的参数是list,要根据list判断是否为空来判断是否要使用这个参数。

尝试了很多方法,比如size、length、is null、!=null等等,都要报错,比如could not extract ResultSet; SQL n/a; nested exception is org.hibernate.exception.DataException: could not extract ResultSet 错误。

最后查阅网上文章使用如下方式得到了正确的结果。

java 复制代码
@Query("SELECT *  FROM order \n" +
       "WHERE" +
       "(COALESCE(?1) IS NULL OR (id IN ?1))")
List<Order> getOrders(List<Long> ids);

这里的关键是COALESCE函数,此函数表示传进去的list的值判断,返回第一个不为null的值,如果list为空则返回null。这样就相当于对list进行判断并执行id IN了。

相关推荐
paopaokaka_luck21 小时前
基于springboot3+vue3的企业考勤管理系统(部门树递归、Echarts图形化分析)
开发语言·spring boot·学习·echarts·mybatis·需求分析·代码规范
minglie121 小时前
zynq高频小数据量PS闭环 抖动时间的测量
学习
long31621 小时前
MySQL 学习练习(配套 01 入门资料)
数据库·学习·mysql
梦雨生生1 天前
java开发工具(学习第一天)
java·开发语言·学习
隔窗听雨眠1 天前
AI重塑数据分析:从SQL执行者到智能基础设施构建者
人工智能·sql·数据分析
Yan_chen6661 天前
SQL-LABS_Less18-20实战攻略
数据库·sql·web安全·网络安全
IT古董1 天前
【MES学习笔记系列】05 - MES 数据库设计
笔记·学习·mes
ZCBUS实时计算1 天前
政务海量分库分表汇聚实战:基于 3 节点 ZCBUS 集群完成医保 10TB 数据实时整合
大数据·数据库·数据仓库·sql·dba·etl·政务
LATASA1 天前
【 从0到1构建 Agent Harness学习笔记】
网络·笔记·学习
Databend1 天前
Databend 产品更新:从 Spatial Index Join 到 Eval 数据管道
大数据·数据库·sql