java - JPA 查询 IN 子句对具有 CSV 值的列不返回准确的结果

标签 java spring-boot jpa

我正在处理 JPA 查询,我需要获得正确的结果。

表结构(我们称之为T1):

enter image description here

这是我的 JPA 查询:

@Query("from T1 t where t.csv in :ids")
List<T1> listT1Records(@Param("ids") List<String> ids);

csv 列还可以包含非数字字符串。当我使用原始sql查询时,它返回记录123,这是我想要的结果,但是当我调试代码时,返回的结果是只记录2。我到处寻找答案,但没有找到。

原始 SQL

select * from T1 where csv in (11);

最佳答案

IN 导致无法像那样工作。

  1. 您应该将列表转换为由逗号操作的字符串:
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/

    相关文章:

    java - 为什么我会收到此 NullPointer 异常?

    hibernate - 努力了解EntityManager的正确使用

    java - textView不会显示小数

    java - Spring data jpa @Onetomany问题

    java - 如何根据命令行参数加载 Spring 配置?

    java - Postgres spring boot R2dbc应用程序中缺少DatabaseClient

    java - 在 ObjectDB 查询中使用 LocalDateTime

    java - 在 Tomcat 中部署 jBPM 7.8.0 - 无法使用 tomcat 用户登录

    java - 如何在java中展平spark数据集中的包装数组

    java - 'this'在应用程序子类的onCreate方法中意味着什么