我正在将 WildFly 版本从 8.1 (Hibernate 4.3.5) 迁移到 11.0 (Hibernate 5.1.10),现在出现一个新错误:
引起:org.hibernate.loader.MultipleBagFetchException:无法同时获取多个包:[InformeMensalINR.aplicacoesEfetuadas,InformeMensalINR.recursosTransferidos]
映射如下,在 Hibernate 4 上运行良好:
@OneToMany(mappedBy="informeMensalINR",cascade=CascadeType.ALL,fetch=FetchType.EAGER,orphanRemoval=true)
public List<RecursoTransferido> getRecursosTransferidos() {
return recursosTransferidos;
}
@OneToMany(mappedBy="informeMensalINR",cascade=CascadeType.ALL,fetch=FetchType.EAGER,orphanRemoval=true)
public List<AplicacaoEfetuada> getAplicacoesEfetuadas() {
return aplicacoesEfetuadas;
}
对于为什么现在会发生这种情况有什么想法吗?在 WildFly 8 中效果很好。我在 Hibernate JIRA 中没有找到与此问题相关的任何内容。
最佳答案
我很惊讶为什么这在 WildFly 8 中有效!因为 Hibernate 永远无法急切地加载两个列表,因为这会产生笛卡尔积。
请在此处找到详细说明:
org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
关于java - MultipleBagFetchException 在 Hibernate 4 中不会发生,但在 5 中会发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47824725/