Hibernate Spring JPA获取OneToMany关系的子集
我有两张桌子Hibernate Spring JPA获取OneToMany关系的子集,hibernate,spring-data-jpa,Hibernate,Spring Data Jpa,我有两张桌子 文章 评论 在存储库中: interface ArticlesRepository : JpaRepository<Article, Long>{ fun findArticlesByUsername(username:String):List<Article> } 我想通过user\u z 因此,结果将是: - article_a - comment_2 by user_z - article_b - article_c 对不
- 文章
- 评论
interface ArticlesRepository : JpaRepository<Article, Long>{
fun findArticlesByUsername(username:String):List<Article>
}
我想通过user\u z
因此,结果将是:
- article_a
- comment_2 by user_z
- article_b
- article_c
对不起,我是新来的,我正在尝试使用最佳实践来做这件事
谢谢
@Fetch
注释不会帮助您,因为它不会影响筛选
我想你可以尝试在这里使用@Filter
注释
@实体(name=“articles”)
数据类文章(
// ...
@独身癖
@滤器(
name=“commentUser”,
条件=“用户名=:名称”
)
val注释:列表,
)
entityManager
.unwrap(Session.class)
.enableFilter(“commentUser”)
.setParameter(“名称”、“用户_z”);
ArticlesRepository.findArticlesByUsername
方法另外,我不熟悉Kotlin,因此语法可能需要更正。是否可以将筛选器与
ArticlesRepository.findAll
一起使用?asArticlesRepository.findArticlesByUsername
将立即按用户名筛选文章。实际上,我无法使用存储库让筛选器工作,但使用entityManager.createQuery(“从文章a中选择a”)
是,该过滤器应适用于ArticlesRepository.findAll
以及ArticlesRepository.findArticlesByUsername
以及更一般地适用于在from
子句中使用Article
的所有查询。请参阅另一个示例答案。谢谢,我发现它缺少@Transactional
interface ArticlesRepository : JpaRepository<Article, Long>{
fun findArticlesByUsername(username:String):List<Article>
}
- article_a
- comment_1 by user_x
- comment_2 by user_z
- article_b
- comment_1 by user_x
- article_c
- article_a
- comment_2 by user_z
- article_b
- article_c