我有一个类别< - >的典型案例。 Category_Product< - >产品关系。
CategoryDTO类的Set<ProductDTO>
成员定义为:
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(
name = "Category_Product",
joinColumns = @JoinColumn(name = "CAT_ID"),
inverseJoinColumns = @JoinColumn(name = "PROD_ID")
)
public Set<Product> getProducts() {
return products;
}
问题是,当且仅当 Category_Product.ENABLED为&#39; 1&#39; 时,我希望具有Category-&gt; Product关系。
我尝试使用@FilterJoinTable
注释,但据我所知,它仅适用于实体(不在链接表上),所以它在这里没有帮助。
我希望有一个使用Hibernate内置功能的优雅解决方案。
答案 0 :(得分:1)
Hibernate filters文档明确指出@FilterJoinTable
:
当集合使用关联表作为关系表时 表示,您可能希望将过滤条件应用于 关联表本身或目标实体表。申请 对目标实体的约束,使用常规
@Filter
注释。 但是,如果要定位关联表,请使用@FilterJoinTable
注释。
所以,它应该有用。