学习记录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了。

相关推荐
aWty_12 小时前
实分析入门(12)--可测函数
学习·数学·算法·实变函数
词元Max13 小时前
4.1 监督学习入门:线性回归与分类
学习·分类·线性回归
-To be number.wan13 小时前
计算机组成原理 | 位扩展、字扩展与片选逻辑
学习·计算机组成原理
小烤箱13 小时前
ROS2 学习资源与学习方法
学习·ros·学习方法·ros2
casual~13 小时前
十六届蓝桥杯国赛个人题解
经验分享·学习·算法·蓝桥杯
小陈phd14 小时前
多模态大模型学习笔记(四十六)——图像-文本生成(Image-Text Generation):跨模态创作与语义互通
笔记·学习·计算机视觉
噜噜噜阿鲁~14 小时前
python学习笔记 | 11.4、面向对象高级编程-定制类
笔记·python·学习
爱喝水的鱼丶14 小时前
SAP-ABAP:SAP 简单报表输出开发系列(共6篇) 第五篇:SAP 报表多格式输出:Excel/PDF 批量导出功能实现
学习·性能优化·pdf·excel·sap·abap
凯尔萨厮14 小时前
Hibernate(学习笔记)
笔记·学习·hibernate
lunzi_082614 小时前
【学习笔记】《Python编程 从入门到实践》第5章:if语句、条件测试与列表处理实战
笔记·python·学习