我正在尝试更新一个嵌套了一对多关系的父实体,如下所示:
@Entity
Class Zone {
@Id
@Column(name = "ID")
int id;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy =
"zone", fetch = FetchType.EAGER)
@Fetch(FetchMode.SELECT)
private List<ZoneGroup> zoneGroups = new ArrayList<>();
}
@Entity
Class ZoneGroup {
@Id
@Column(name = "ID")
int id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="ZONE_ID")
private Zone zone;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy =
"zoneGroup", fetch = FetchType.EAGER)
@Fetch(FetchMode.SELECT)
private List<ZoneCriteria> zoneCriterias = new ArrayList<>();
}
@Entity
Class ZoneCriteria {
@Id
@Column(name = "ID")
int id;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name="ZONE_GROUP_ID")
private ZoneGroup zoneGroup;
}
我正在尝试使用级联更新父实体。通过在服务层中设置ZoneGroup实体,使用JPA实体管理器使用ALL(同时更新了子实体),但是级联未应用于ZoneCriteria,因此无法插入休眠抛出用于插入ZoneCriteria实体的null。 注意:我正在使用级联选项进行更新。
问题: 1.我的映射从上方是否正确 2. Hibernate是否支持嵌套实体映射 3.如果上述问题是肯定的,那么如何通过设置Zone属性来更新所有子实体(ZoneGroup和ZoneCriteria)。
任何帮助将不胜感激。谢谢