@LazyCollection(LazyCollectionOption.FALSE)和@OneToMany(fetch = FetchType.EAGER)之间的区别
2022-09-01 17:44:41
我对“延迟加载”有一个疑问。使用 和 有什么区别?@LazyCollection(LazyCollectionOption.FALSE)
@OneToMany(fetch = FetchType.EAGER)
在我的应用程序中,我使用两个列表,但是如果我以这种格式使用:
@OneToMany(mappedBy = "consultaSQL", orphanRemoval = true, fetch = FetchType.EAGER,
cascade = CascadeType.ALL)
private List<ParametroSQL> parametros;
@OneToMany(mappedBy = "consulta", orphanRemoval = true, fetch = FetchType.EAGER,
cascade = CascadeType.ALL)
private List<Contato> contatos;
我有这个错误:
由以下原因引起:org.hibernate.loader.MultipleBagFetchException:无法同时获取多个包
我知道发生这种情况是因为Hibernate不允许我同时加载两个列表。但是如果我使用这种格式:
@LazyCollection(LazyCollectionOption.FALSE)
@OneToMany(mappedBy = "consultaSQL", orphanRemoval = true,
cascade = CascadeType.ALL)
private List<ParametroSQL> parametros;
@LazyCollection(LazyCollectionOption.FALSE)
@OneToMany(mappedBy = "consulta", orphanRemoval = true,
cascade = CascadeType.ALL)
private List<Contato> contatos;
它完美地工作。
对不起我的英语谢谢