Класс карточки
public class Card implements Serializable {
private List contributors;
@OneToMany(mappedBy = “card”)
public List getContributors() {
return contributors != null ? contributors : (contributors = new ArrayList());
}
}
Класс контрибутора:
public class Contributor implements Serializable {
private Card card ;
@ManyToOne(targetEntity = Card.class)
@JoinColumn(name = “CARDID”)
public Card getCard() {
return card;
}
}
При выборке карточек для поиска по контрибуторам можно использовать запрос:
getEntityManager().createQuery(“SELECT DISTINCT card FROM catalog.Card card LEFT OUTER JOIN card.contributors contributor WHERE contributor….”) ;