我正在尝试创建一个实体,该实体具有与他相同类型的父和子(如树)。
这是代码:
@Entity @Table(name = "areas") 公共类区域 {
@Id
@Column(name = "id")
@GeneratedValue
private int id;
@Column(name = "name")
private String name;
@Column(name = "area_type", nullable = true)
private int areaType;
@ManyToOne
@JoinColumn(name="parent_area_id")
private Area parentArea;
@OneToMany (fetch = FetchType.EAGER, mappedBy = "parentArea")
@Cascade({CascadeType.ALL})
private Collection<Area> childAreas = new ArrayList<Area>();
当我尝试将此类实体保存到我得到的数据库时,我首先在堆栈溢出的一些帖子中看到了此代码:
nested exception is org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags
此外,我对这个设计还不太了解。
如果子区域由父区域映射。这不意味着“这个”区域将在孩子们中间吗?换句话说......子区域不会是“这个”类的父区域的子区域。
谢谢。