Я думал, что ключевое слово CascadeType
связано с операцией EntityManager
.
Но эти коды меня смущают.
Код вроде следующего. (Извините за действительно простой код)
Parent parent = new Parent();
Child child1 = new Child();
Child child2 = new Child();
parent.addChild(child1);
parent.addChild(child2);
em.persist(parent);
после запуска был вставлен parent, child1, child2.
Пока все в порядке, и я ожидаю этого.
Parent foundParent = em.merge(parent); // parent has identifier
Child child1 = new Child();
Child child2 = new Child();
parent.addChild(child1);
parent.addChild(child2);
Отсюда .. Я начал думать em.perist != CascadeType.PERSIST
.
И .. этот код также был таким же.
Parent foundParent = em.find(Parent.class, 1);
Child child1 = new Child();
Child child2 = new Child();
parent.addChild(child1);
parent.addChild(child2);
child1, child2 также был вставлен.
Теперь я очень растерялся.
Если они не совпадают между operation of EntityManager
и CascadeType
, как я могу понять CascadeType.MERGE
?
Извините за мой короткий английский, спасибо за чтение.