为什么我不能使用 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; 

只需使用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命名惯例。

是。可以通过注释与的关系来实现

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

最新更新