У меня есть 3 связанных объекта GParent, Parent, Child. Родитель уже существует (раскрывающиеся данные). GParent и Child должны быть созданы в одной транзакции.
У нас есть уже существующая база данных, в которой есть некоторые статические данные, для которых требуется добавить контактную информацию при создании охватывающего объекта (GParent).
Поскольку родительские данные уже существуют, я не могу каскадно добавить PERSIST для сохранения контактных (дочерних) данных.
GParent:
//bi-directional many-to-many association to Parent
@ManyToMany(cascade = {
CascadeType.MERGE}, fetch = FetchType.LAZY)
@JoinTable(name="GPARENT_PARENT",
joinColumns=@JoinColumn(name="GPARENT_ID"),
inverseJoinColumns=@JoinColumn(name="PARENT_ID"))
private List<Parent> parents = new ArrayList <Parent>();
Родитель:
@OneToOne(cascade = CascadeType.PERSIST, fetch = FetchType.EAGER)
@JoinTable(name = "Parent_Child", joinColumns = @JoinColumn(name =
"PARENT_ID"), inverseJoinColumns = @JoinColumn(name = "CHILD_ID"))
private Child child;
Я понимаю, что сохранение GParent не сохранит Child (Grand-Child), так как лучше всего добавить необходимые данные в Parent?