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

相关推荐
red_redemption6 小时前
自由学习记录(214)
学习
盗理者8 小时前
AI Agent 技能分享|SQL 性能诊断与优化
java·sql·spring·skill
祈禾8 小时前
计算机组成原理之编译、汇编、链接、解释
开发语言·汇编·笔记·学习
知识分享小能手8 小时前
线性代数学习教程,从入门到精通,矩阵的初等变换与线性方程组(6)
学习·线性代数·矩阵
我命由我123459 小时前
四流一致(合同流、业务流、资金流、发票流)
经验分享·学习·职场和发展·求职招聘·职场发展·产品经理·学习方法
知识分享小能手9 小时前
线性代数学习教程,从入门到精通,矩阵的初等变换与线性方程组(5)
学习·线性代数·矩阵
上海云盾商务经理杨杨10 小时前
SQL 盲注入渗透实战!无报错页面也能成功注入
数据库·sql
我的xiaodoujiao10 小时前
快速学习Python基础知识详细图文教程18--多线程
开发语言·python·学习·测试工具
han_hanker11 小时前
SQL语法 一个统计的查询
sql
AI Dog11 小时前
MathHub:数学建模学习社区,内置数学建模智能体Modulus
学习·数学建模·智能体·modulus·数学建模智能体