2016-03-28 10 views
0

2つのリレーションを持つエンティティクラスを実装していますが、使用できません 2つのリストのfetch = FetchType.EAGER i両方なぜFetchType.EAGERを使用して同じエンティティクラスで2つのリストを使用できない

ためFetchType.LAZYを使用する必要がありますはい、両方

@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

@lazycollectionアノテーションを使用しようとすると、[Hibernateは複数のバッグを同時に取得できません](duplicate)を複製することはできません(http://stackoverflow.com/questions/4334970/hibernate-cannot-simultaneously-fetch-multiple-bags) –

答えて

0

だけで、Javaの命名Conventntionに従ってください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; 

の代わりにSetを使用しています。

+0

私はLazyCollection(LazyCollectionOption.FALSE)を使用できますか? –

+0

@AliBouslama私は決して使っていない –

0

を熱望使用するためのソリューションがあります。あなたの場合には、

@LazyCollection(LazyCollectionOption.FALSE) 

の関係に注釈を付けることで達成できます。

@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

その注釈を認識しない 私は何ができますか? –

+0

FetchTypeには、使用できるFetchType.EAGERの量に制限があります。 2つのリストをEAGERとしてロードしています。 @LazyCollection(LazyCollectionOption.FALSE)は、EAGERとして任意の数のリストをロードできるようにします。 –

+0

'@LazyCollection(LazyCollectionOption.FALSE)'は休止状態に特有のことを言及していません。あなたが休止状態を使用していない場合、これは動作しません。その場合、@ v.ladynevの解決策に行くことができます。 –

関連する問題