報錯:org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
出錯原因:當(fetch = FetchType.EAGER)多餘一個時,持久框架抓取一方的對象時,同時又將多方的對象加載進容器中,多方又可能關聯其它對象,Hibernate實現的JPA,默認最高抓取深度含本身級爲四級(它有個屬性配置是0-3),若多方(第二級)存在重複值,則第三級中抓取的值就無法映射,就會出現 multiple bags。
解決方法:多加一個註釋 @Fetch(FetchMode.SUBSELECT)
例子:
@OneToMany(fetch = FetchType.EAGER, orphanRemoval = true, cascade = CascadeType.ALL) @Fetch(FetchMode.SUBSELECT)
private List<XX> xxList;