У меня есть объект Person с несколькими телефонными номерами.
@OneToMany(mappedBy="person", cascade=CascadeType.ALL)
public Set<PhoneNumberOfPerson> getPhoneNumbers() {
return phoneNumbers;
}
Теперь я хотел бы реализовать метод «получить номер телефона по умолчанию» для Person, которого охотно выбирают. Этот телефонный номер по умолчанию является одним из телефонных номеров в наборе phoneNumbers. Есть ли способ сделать это?
Причина, по которой я пытаюсь это реализовать, заключается в том, чтобы этот телефонный номер по умолчанию был указан на странице со списком «всех» людей в БД.
Как начинающий JPA, я сначала попробовал его следующим методом:
@Transient
public PhoneNumberOfPerson getDefaultPhoneNumber(){
if(this.getPhoneNumbers().size()==0)
return null;
return this.getPhoneNumbers().iterator().next();
}
Но это, конечно, привело к очень медленной странице списка.
Так есть ли способ определить временное свойство, которое получает одну сущность из коллекции сущностей на основе некоторого запроса? Я использую Hibernate в качестве провайдера персистентности.