2016-03-28 48 views
0

kullanarak aynı varlık sınıfında 2 liste kullanamıyorum bir çok ilişki var çok var bir varlık sınıfı uyguluyor ama fetch = FetchType.EAGER iki liste i kullanamıyor Her ikiNeden FetchType.EAGER

için FetchType.LAZY kullanmalıdır Evet hem

@OneToMany(mappedBy="fournisseur",fetch = FetchType.EAGER,cascade={ CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REMOVE}) 
private List<Carburant_entree> carburant_entrees; 

@OneToMany(mappedBy="user",fetch = FetchType.EAGER,cascade={ CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REMOVE}) 
private List<Users> theusers; 
+0

Olası yinelenen [Birden çok çanta aynı anda getiremiyorsanız] (http://stackoverflow.com/questions/4334970/hibernate-cannot-simultaneously-fetch-multiple-bags) @lazycollection anotation'ı kullanmaya çalıştığımda –

cevap

0

Sadece Java İsimlendirme Conventntion takip ediniz List

@OneToMany(mappedBy="fournisseur",fetch = FetchType.EAGER,cascade={ CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REMOVE}) 
private Set<CarburantEntree> carburantEntrees; 

@OneToMany(mappedBy="user",fetch = FetchType.EAGER,cascade={ CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REMOVE}) 
private Set<Users> users; 

yerine Set kullanın.

+0

ile teşekkür ederim ama ben LazyCollection (LazyCollectionOption.FALSE) kullanabilir miyim @LazyCollection (LazyCollectionOption.FALSE) 'kullanıyorum? –

+0

@AliBouslama Asla kullanmıyorum –

0

için EAGER kullanmak için bir çözüm yoktur. Durumunuzda olması gerektiği gibi

ile ilişkinin eklenmesiyle elde edilebilir.

@LazyCollection(LazyCollectionOption.FALSE) 
@OneToMany(mappedBy="fournisseur",cascade={ CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REMOVE}) 
private List<Carburant_entree> carburant_entrees; 

@LazyCollection(LazyCollectionOption.FALSE) 
@OneToMany(mappedBy="user",cascade={ CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REMOVE}) 
private List<Users> theusers; 
+0

Bu açıklamayı tanımalıyım ne yapabilirim? –

+0

FetchType, ne kadar FetchType.EAGER kullanılabileceği konusunda sınırlamalara sahiptir. hangi iki liste EAGER olarak yükleniyor. @LazyCollection (LazyCollectionOption.FALSE), herhangi bir sayıda listeyi EAGER olarak yüklemenizi sağlar. –

+0

'@LazyCollection (LazyCollectionOption.FALSE)' ın belirli bir şekilde hazırda beklediğinden bahsetmeyi unutmayınız. Eğer hazırda bekletme kullanmıyorsanız, bu işe yaramaz. Bu durumda @ v.ladynev çözümü için gidebilirsiniz. –