我有一个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配置,但我想用注释来实现它。
答案 0 :(得分:0)
您可以使用@Filter annotations在运行时过滤掉数据。
public class Person{
@Filter(name="filterAddressType", condition=":addressType = addressType")
Set<Address> addresses;
}
在运行时,您可以通过会话应用过滤数据,如下所示:
session.enableFilter("filterAddressType").setParameter("addressType ", "Home");