【问题标题】:MultipleBagFetchException not happening in Hibernate 4, does in 5MultipleBagFetchException 在 Hibernate 4 中没有发生,在 5 中发生
【发布时间】:2017-12-15 01:53:18
【问题描述】:

我正在将我的 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 中没有找到与此问题相关的任何内容。

【问题讨论】:

    标签: java hibernate jpa jakarta-ee


    【解决方案1】:

    我很惊讶为什么这在 WildFly 8 中有效!因为 Hibernate 永远无法急切地加载两个列表,因为这会产生笛卡尔积。

    请在此处找到详细说明:

    org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags

    【讨论】:

    • 我想我意识到刚刚发生了什么。这段代码部署在 WildFly 上,但未被调用(它用于独立应用程序中)。在 WFLY 8 中,这个异常可能只会在运行时抛出。 WFLY 11 似乎在部署时间检查它。
    猜你喜欢
    • 2014-08-17
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    相关资源
    最近更新 更多