SpringBoot命名查询:IN子句不适用于多个值

时间:2018-07-13 15:03:53

标签: spring-boot named-query in-clause

“ In子句”不适用于传递多个值

存储库代码

X

通过服务呼叫

@Query( "select myObject from MyObject myObject where myObject.anyColumn in :values" )
public List<MyObject> findPriDestByCntryAbbr(@Param("values") List<String> values);

当我传递单个值时,它正在从表中检索正确的信息,但是在传递列表“值”中的多个值时会给出空结果

1 个答案:

答案 0 :(得分:0)

理想情况下,它应该可以工作。您应该检查values变量。

您可以尝试的另一种方法是-无需编写查询。 根据{{​​3}},我们可以通过扩展Repository接口来创建MyObjectRepository接口,然后使用一种方法来获取所有MyObjects。就像这样:

public interface MyObjectRepository extends Repository<MyObject,**Long**> {

List<MyObject> findBy**AnyColumn**In(Collection<String> values);

}

“ AnyColumn”是您的列名,Repository接口的第二个参数根据您的要求。