java - 带有 Spring Data JPA @Query 注释的 IN 子句错误

标签 java spring-data spring-data-jpa jpql in-clause

将 IN 子句与 Spring Data @Query 结合使用时出现 IN OUT 错误。

查询:

@Query("SELECT m FROM message m WHERE m.user = :user AND m.tags IN :tags")
List<Message> findByUserAndTags(@Param("user") User user, @Param("tags") List<Tag> tags);

错误:

Caused by: java.sql.SQLException: Missing IN or OUT parameter at index:: 2

IN 子句在使用 Spring Data 自动查询时完美运行:

List<Message> findByUserAndTagsIn(User user, List<Tag> tags);

我在使用@Query 注释时遗漏了什么?

最佳答案

你试过这样吗:

 @Query("SELECT m FROM message m WHERE m.user = ?1 AND m.tags IN ?2")
    List<Message> findByUserAndTags(User user, List<Tag> tags);

关于java - 带有 Spring Data JPA @Query 注释的 IN 子句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39409859/

相关文章:

Spring Data JPA 自定义方法导致 PropertyReferenceException

mongodb - 使用 QueryDSL 使用 Spring Data MongoDB 查询 DBRef

Spring Data Rest 可分页子集合

java - 不满意的依赖异常 : Error creating bean with name 'procjectController' : Unsatisfied dependency expressed through field

java - 如何实现 Multi-Tenancy Spring Boot 应用程序(每个用户都有自己的数据库)

Java replaceAll函数的字符串不替换

Java 在 BufferedReader.read for char 之后抛出 NumberFormatException 错误

java - 当有多个处理器时,Thread.currentThread() 是如何工作的?

java - 提取 Spring Boot 用户属性

java - Spring Boot - 在 Controller 方法中访问 JPA 实体属性