Mam Parent podmiot z Child podmiotu w ManyToOne zależność:Jak uniknąć duplikatów z kaskadami JPA?
@Entity class Parent {
// ...
@ManyToOne((cascade = {CascadeType.ALL})
private Child child;
// ...
}
Dziecko posiada unikalny murawę:
@Entity class Child {
// ...
@Column(unique = true)
private String name;
// ...
}
Kiedy potrzebny jest nowy Dziecko, pytam o jodłę ChildDAO st:
Child child = childDao.findByName(name);
if(child == null) {
child = new Child(name);
}
Parent parent = new Parent();
parent.setChild(child);
Problem jest, jeśli zrobić jak wyżej dwukrotnie (o tej samej nazwie na dziecka), a tylko utrwalić Parent na koniec, mam ograniczenie wyjątku. Co wydaje się normalne, ponieważ początkowo w bazie danych nie było dziecka o określonej nazwie.
Problem polega na tym, że nie jestem pewien, jaki byłby najlepszy sposób na uniknięcie tej sytuacji.
Jesteś pewien, że Twój model jest w porządku? Dziecko może mieć wielu Rodziców, a Rodzic może mieć tylko jedno Dziecko? –
Moja odpowiedź zakłada związek OneToOne - powyższy komentarz jest absolutnie poprawny, jest to dziwna nazwa, jeśli jest poprawna. –
Tak, model jest poprawny. Zmieniłem nazwy obiektów na przykład i wygląda na to, że mogłem zrobić to lepiej. – Cos64