gpt4 book ai didi

java - 使用自定义查询访问 Spring Repository 中的集合字段

转载 作者:行者123 更新时间:2023-12-02 03:10:26 24 4
gpt4 key购买 nike

我正在尝试进行查询以搜索我的应用程序中包含内容或标签名称关键字的所有帖子,但仅限于那些公开的帖子。我正在尝试进行 JPQL 搜索,但我不知道如何访问 Tags.name 属性。

注意:Post是一个实体,它有一个Tag实体列表;

我已经尝试过这个,但它不起作用(正如我预期的那样):

@Query("SELECT p FROM Post p WHERE (p.content LIKE CONCAT('%', LOWER(:keyword),'%' OR p.tags.name LIKE CONCAT('%', LOWER(:keyword)) AND (p.open IS TRUE)")

我已查看文档,但没有看到任何管理此问题的选项,这里最好的方法是什么?

谢谢!

最佳答案

由于多个 tag 可以与 post 关联,因此关系是从 Post@OneToMany 标签join 应该适用于这种情况。

试试这个。

@Query("SELECT p FROM Post p left join p.tags pTags WHERE (p.content LIKE CONCAT('%',LOWER(:keyword),'%' OR pTags.name LIKE CONCAT('%',LOWER(:keyword)) AND (p.open IS TRUE)")

PS:我还没有测试过这个,但它应该可以工作。

关于java - 使用自定义查询访问 Spring Repository 中的集合字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41132982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com