HiberNate过滤器,带有一对多映射的注释

时间:2011-05-19 11:17:44

标签: hibernate hibernate-annotations

我有一个Person类,它可以有4种类型的地址,并且可以有多个地址对应一种类型的地址。

public class Person{
 Set<Address> addresses;
}

public class Address{
private int phoneNumber;   
private Type addressType;
}

public Enum Type{
Buisness,
Personal,
X,
Y   
}

所以我要实现的是当填充person对象时,应该使用特定类型的地址填充特定类型的Addesses列表。 但是我想指定在运行时填充哪种类型的地址。 我认为它可以通过hibernate Filter XML配置,但我想用注释来实现它。

1 个答案:

答案 0 :(得分:0)

您可以使用@Filter annotations在运行时过滤掉数据。

public class Person{

     @Filter(name="filterAddressType", condition=":addressType = addressType")
     Set<Address> addresses;
}

在运行时,您可以通过会话应用过滤数据,如下所示:

session.enableFilter("filterAddressType").setParameter("addressType ", "Home");