Spring Data JPA @Query注释的子句错误

业余

在Spring Data @Query中使用IN子句时出现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

使用Spring Data自动查询时,子句可完美工作:

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

使用@Query注释时缺少内容吗?

伊凡·隆巴(Ivan Lomba)

您可以使用来解决它LEFT JOIN

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章