我们最近将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);