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