码迷,mamicode.com
首页 > Web开发 > 详细

jpa 报错: Unable to build Hibernate SessionFactory; nested exception is org.hibernate.loader.MultipleBagFetch

时间:2021-06-02 13:20:12      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:tab   字段   net   any   public   注解   bsh   man   添加   

model代码如下:

@OneToMany(fetch=FetchType.EAGER, cascade = CascadeType.ALL)
    @Where(clause="isValid=1 and orderType=1")
    @JoinColumn(name = "orderUUID", referencedColumnName = "JobShippingOrderUUID",insertable = false, updatable = false)
    public List<BoJobgoods> getBoJobgoodsList() {
        return boJobgoodsList;
    }

    @OneToMany(fetch=FetchType.EAGER, cascade = CascadeType.ALL)
    @Where(clause="isValid=1 and orderType=1")
    @JoinColumn(name = "orderUUID", referencedColumnName = "JobShippingOrderUUID",insertable = false, updatable = false)
    public List<BoJobcontainer> getBoJobcontainerList() {
        return boJobcontainerList;
    }

启动就报错 Unable to build Hibernate SessionFactory; nested exception is org.hibernate.loader.MultipleBagFetch。。。。。。。。。。

原因是同一个model里不能有二个 FetchType.EAGER 

于是把另一个改成:FetchType.LAZY 再次启动成功

但是访问接口又报另一个错:

Could not write JSON: failed to lazily initialize a collection of role: com.kintech.model.domain.bo.BoJobshippingorder.boJobgoodsList, could not initialize proxy - no Session; nested exception is com.fasterxml.jackson.databind.JsonMappingException: failed to lazily initialize a collection of role: 

于是再改把后码的list字段添加@Fetch(FetchMode.SUBSELECT)注解代码如下:

@OneToMany(fetch=FetchType.EAGER)
    @Where(clause="isValid=1 and orderType=1")
    @JoinColumn(name = "orderUUID", referencedColumnName = "JobShippingOrderUUID",insertable = false, updatable = false)
    public List<BoJobgoods> getBoJobgoodsList() {
        return boJobgoodsList;
    }

    public void setBoJobgoodsList(List<BoJobgoods> boJobgoodsList) {
        this.boJobgoodsList = boJobgoodsList;
    }

    @OneToMany(fetch=FetchType.EAGER)
    @Fetch(FetchMode.SUBSELECT)
    @Where(clause="isValid=1 and orderType=1")
    @JoinColumn(name = "orderUUID", referencedColumnName = "JobShippingOrderUUID",insertable = false, updatable = false)
    public List<BoJobcontainer> getBoJobcontainerList() {
        return boJobcontainerList;
    }

 再运行,完全搞定

jpa 报错: Unable to build Hibernate SessionFactory; nested exception is org.hibernate.loader.MultipleBagFetch

标签:tab   字段   net   any   public   注解   bsh   man   添加   

原文地址:https://www.cnblogs.com/q149072205/p/14819175.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!