Фильтр HiberNate с аннотациями в сопоставлении «один ко многим»

У меня есть класс Person, который может иметь 4 типа адресов, и может быть несколько адресов, соответствующих одному типу адреса.

public class Person{
 Set<Address> addresses;
}

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

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

Итак, что я хочу реализовать, так это то, что когда объект человека заполняется, список адресов определенного типа должен быть заполнен определенным типом адреса. однако я хочу указать, какой тип адреса будет заполнен во время выполнения. я думаю, что это возможно через XML-конфигурацию hibernate Filter, но я хочу реализовать ее только с аннотациями.


person dpsdce    schedule 19.05.2011    source источник


Ответы (1)


Вы можете использовать аннотации @Filter. для фильтрации данных во время выполнения.

public class Person{

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

И во время выполнения вы можете применять данные фильтра через сеанс, как показано ниже:

session.enableFilter("filterAddressType").setParameter("addressType ", "Home");
person Viral Patel    schedule 04.01.2012