【发布时间】:2016-05-24 12:42:13
【问题描述】:
我有两个实体。例如,帖子和标签。 我必须编写一个方法,该方法只接受查询中提到的具有所有标签的帖子。
我试过了
@Query("select distinct p from posts p join p.tags t where t in ?1")
Page<Post> findDistinctByTagsIn(Set<Tag> tagSet, Pageable pageable);
但是,如果至少有一个标签包含在 tagSet 中,则需要 Post。
如何仅使用 HQL 和 JPA 存储库解决此问题?
更新:
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "posts_tags", joinColumns = {
@JoinColumn(name = "post_id", nullable = false, updatable = false)},
inverseJoinColumns = {@JoinColumn(name = "tag_id")})
public Set<Tag> getTags() {
return tags;
}
【问题讨论】:
-
文章和标签在数据模型中是如何相互链接的?我们需要知道这些实体或基础表的相关部分。
-
@MickMnemonic,标签和帖子是多对多链接的
标签: java spring jpa hql spring-data-jpa