簡體   English   中英

為什么我不能使用 FetchType.EAGER 在同一個實體類上使用兩個列表

[英]Why can't I use two lists on the same entity class using FetchType.EAGER

我正在實現一個實體類,它有 2 個一對多的關系,但我不能fetch = FetchType.EAGER兩個列表使用fetch = FetchType.EAGER 我應該對兩者都使用FetchType.LAZY

是否有同時使用 EAGER 的解決方案?

@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; 

是的。 它可以通過注釋與的關系來實現

    @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; 

只需使用Set代替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;

請遵循 Java 命名約定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM