1. 在实体中创建一个集合对象 private List<Book> bookList = new ArrayList<Book>();
报错:Caused by: org.hibernate.loader.MultipleBagFetchException
报错原因:当(fetch = FetchType.EAGER)多余一个时,持久框架抓取一方的对象时,同时又将多方的对象加载进容器中,多方又可能关联其它对象,Hibernate实现的JPA,
默认最高抓取深度含本身级为四级(它有个属性配置是0-3),若多方(第二级)存在重复值,则第三级中抓取的值就无法映射,就会出现 multiple bags。
解决方法:
1、将(fetch = FetchType.EAGER)改为(fetch = FetchType.LAZY)
2、将List修改成Set集合,即推荐@ManyToMany或@OneToMany的Many方此时用Set容器来存放,而不用List集合
2、在实体中创建一个集合对象 private List<Book> bookList = new ArrayList<Book>();
报错:Caused by: org.hibernate.MappingException: Could not determine type for: java.util.List
报错原因:@ManyToMany等注解。要么加载属性上,要么加在属性的Get方法上,不能混合使用!
解决方法:将 @ManyToMany(fetch = FetchType.EAGER)加在属性前面