Java 代码>。从持久性的角度来看,这是没有意义的,请在@dognose答案中查找explanation@OleksandrShpota不能引用SQL查询中不属于数据库层的任何内容。您可以编写另一个不带参数的方法findUsers(),该方法返回所有用户,并在集合

Java 代码>。从持久性的角度来看,这是没有意义的,请在@dognose答案中查找explanation@OleksandrShpota不能引用SQL查询中不属于数据库层的任何内容。您可以编写另一个不带参数的方法findUsers(),该方法返回所有用户,并在集合,java,hibernate,jpa,spring-boot,spring-data-jpa,Java,Hibernate,Jpa,Spring Boot,Spring Data Jpa,代码>。从持久性的角度来看,这是没有意义的,请在@dognose答案中查找explanation@OleksandrShpota不能引用SQL查询中不属于数据库层的任何内容。您可以编写另一个不带参数的方法findUsers(),该方法返回所有用户,并在集合为空时从外部上下文调用该方法。 @Query("SELECT u FROM User u" + "WHERE" + " :ids IS EMPTY" + " OR u.id IN :ids


代码>。从持久性的角度来看,这是没有意义的,请在@dognose答案中查找explanation@OleksandrShpota不能引用SQL查询中不属于数据库层的任何内容。您可以编写另一个不带参数的方法findUsers(),该方法返回所有用户,并在集合为空时从外部上下文调用该方法。
@Query("SELECT u FROM User u" +
        "WHERE" +
        "   :ids IS EMPTY" +
        "   OR u.id IN :ids")
Collection<User> findUsers(@Param("ids") Collection<String> ids);
:ids IS EMPTY
@Query("SELECT u FROM User u" +
    "WHERE" +
    "   u.id IS NULL" +
    "   OR u.id IN :ids")
where color_id in (1,2,..,10) and type_id in (1,2,3) AND tile_id in (1,2,..,5)
instead of the invalid
where color_id in () and type_id in () AND tile_id in ()