我正在处理 JPA 查询,我需要获得正确的结果。
表结构(我们称之为T1):
这是我的 JPA 查询:
@Query("from T1 t where t.csv in :ids")
List<T1> listT1Records(@Param("ids") List<String> ids);
csv 列还可以包含非数字字符串。当我使用原始sql查询时,它返回记录1、2和3,这是我想要的结果,但是当我调试代码时,返回的结果是只记录2。我到处寻找答案,但没有找到。
原始 SQL
select * from T1 where csv in (11);
最佳答案
IN
导致无法像那样工作。
- 您应该将列表转换为由逗号操作的字符串:
String.join(",", ids);
- 使用以下查询:
@Query("from T1 t where t.csv like %:ids%")
List<T1> listT1Records(@Param("ids") String ids);
关于java - JPA 查询 IN 子句对具有 CSV 值的列不返回准确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62475006/