为什么我不能使用 FetchType.EAGER 在同一实体 class 上使用两个列表

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

我正在实现一个实体 class,它具有 2 个一对多关系,但我不能将 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 命名约定。