У меня есть Parent объект с Дочерний объект в отношении ManyToOne :
@Entity class Parent {
// ...
@ManyToOne((cascade = {CascadeType.ALL})
private Child child;
// ...
}
Дочерний объект имеет уникальное поле:
@Entity class Child {
// ...
@Column(unique = true)
private String name;
// ...
}
Когда мне нужен новый Дочерний , я сначала спросите ChildDAO :
Child child = childDao.findByName(name);
if(child == null) {
child = new Child(name);
}
Parent parent = new Parent();
parent.setChild(child);
Проблема в том, что если я сделаю то же самое, что и дважды (с тем же именем для Child ), и сохраню только Родитель в конце, я получаю исключение ограничения. Это кажется нормальным, поскольку изначально в базе данных не было дочернего элемента с указанным именем.
Проблема в том, что я не уверен, что будет лучший способ избежать этой ситуации.