Я пытаюсь обновить родительскую сущность, которая имеет отношение один ко многим, как показано ниже:
@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;
}
Я пытаюсь обновить родительскую сущность, используя cascade.ALL (одновременно обновляя дочерние сущности) с помощью диспетчера сущностей JPA, устанавливая сущность ZoneGroup на уровне обслуживания, однако каскад не применяется к ZoneCriteria, и броски гибернации не могут вставить ноль для вставки сущности ZoneCriteria.Примечание. Я использую каскадные параметры для обновления.
Вопросы: 1. Верно ли мое сопоставление сверху 2. Поддерживает ли hibernate сопоставления вложенных сущностей 3. Если да, на вопрос выше, как обновить все дочерние сущности(ZoneGroup и ZoneCriteria), установив свойство Zone.
Любая помощь будет принята с благодарностью.Спасибо