gpt4 book ai didi

mysql - 具有空 IN 子句的 Spring 数据存储库

转载 作者:行者123 更新时间:2023-11-29 15:57:22 25 4
gpt4 key购买 nike

我正在使用 Spring data JPA,如下所示:

    public interface SampleRepository extends CrudRepository<Sample, Integer>{

@Query("SELECT s FROM Sample s WHERE ((:ids) IS NULL OR s.id IN (:ids))")
List<Sample> queryIn(@Param("ids") List<Integer> ids);
}

但是当 ids 不为空时,我得到 (1,2,3) 为 null,这在 mysql 中是不正确的。

如果我这样写:

    public interface SampleRepository extends CrudRepository<Sample, Integer>{
@Query("SELECT s FROM Sample s WHERE s.id IN (:ids)")
List<Sample> queryIn(@Param("ids") List<Integer> ids);
}

当ids为空时,我得到s.id in (null)

如果我必须使用 native 查询来执行此操作。有什么建议吗?

最佳答案

我猜你想使用 ISNULL 函数来查看 :ids 是否有值

SELECT s FROM Sample s WHERE s.id IN (:ids)) or ISNULL(:ids) = 1

关于mysql - 具有空 IN 子句的 Spring 数据存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56379244/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com