为什么我不能使用fetchtype.eager在同一个实体类上使用两个列表

t1qtbnec  于 2021-07-13  发布在  Java
关注(0)|答案(2)|浏览(364)

我正在实现一个实体类,它有两个关系,一个关系太多,但是我不能使用fetch=fetchtype.earge作为两个列表,我应该使用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;
inb24sb2

inb24sb21#

只是使用 Set 代替 List ```
@OneToMany(mappedBy="fournisseur",fetch = FetchType.EAGER,cascade={ CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REMOVE} )
private Set carburantEntrees;

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

请遵循java命名约定。
9jyewag0

9jyewag02#

对。它可以通过注解与的关系来实现

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

相关问题