如何在Hibernate中过滤数据多对多的映射

时间:2014-09-04 20:21:13

标签: java hibernate orm filter mapping

我有一个表用户,其中包含组和公司的映射。

User{
int id;
private Set groups;
private Set companies;
}

小组和公司都有一个名为"删除"用于了解实体的状态。我已经完成了与XML的映射,现在我想要当我检索用户记录时,只有那些组和公司将检索哪些未被删除。 (删除= FALSE) 我只是坚持这个,所以帮助我。

谢谢。

2 个答案:

答案 0 :(得分:1)

虽然您可以使用过滤器,但您需要为每个会话手动启用这些过滤器。

更简单的方法是使用@Where:

User{
   int id;

   @Where(clause="deleted <> true")
   private Set groups;

   @Where(clause="deleted <> true")
   private Set companies;
}

这样您就可以过滤掉已删除的孩子。

答案 1 :(得分:0)

执行此操作的另一种方法是使用Criteria查询