Bir entity’de iki liste ya da bir dalda iki kiraz

Bir JPA Entity’si içerisinde eğer iki listeniz varsa ve bunların ikisininde fetchType’ı eager olmak durumundaysa JPA implementasyonunuza göre çeşitli hatalar alırsınız.

JPA Provider olarak hibernate kullanıyorsanız aşağıdaki çözüm işinizi büyük oranda görecektir.

Master Sınıfta :

@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="master_id")
@IndexColumn(name="pos_id")
private List primus = new ArrayList();

@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
@JoinColumn(name="master_id")
@IndexColumn(name="pos_id")
private List secundus = new ArrayList();

Detay Sınıflarda :

@ManyToOne
@JoinColumn(name="master_id")
private Master master;

Bu konuda daha detaylı ve ilginç tartışmalar için ise buraya, buraya ve buraya bakabilirsiniz.