在Oracle中使用IN运算符中断的JPA查询方法

时间:2017-05-10 19:18:05

标签: java spring oracle jpa spring-data-jpa

我们最近将Spring-Boot REST API的数据源从Postgres切换到了Oracle。两个数据库中的所有表和表名都相同。

切换后,我们开始在使用' IN'的任何查询中收到以下错误运算符与JPA查询方法。

  

ORA-01797:此运算符必须后跟ANY或ALL

我们在以下所有查询中收到此错误:

List<String> listOfStringValues;
List<MyClass> myClass = myClassRepository.findByColumnNameIn(listOfStringValues);

这些查询/端点在Postgres中都运行良好,但现在在Oracle中我们得到了错误。有谁知道导致错误的原因以及如何修复它?

更新

我能够通过在存储库界面中使用以下查询语法来解决此问题:

@Query("select * from TableName t where t.ColumnName in (:listOfStringValues)")
List<MyClass> findByColumnNameIn(
    @Param("listOfStringValues") 
    Collection<String> listOfStringValues);

0 个答案:

没有答案