Явное сохранение при использовании CascadeType.PERSIST - PullRequest
0 голосов
/ 28 марта 2020

У меня есть ситуация, когда инфраструктура jpa неявно сохраняет новую сущность из-за аннотации CascadeType.PERSIST.

Например, ситуация выглядит следующим образом

Parent parent = new Parent();
entityManager.persist(parent);

Child child = new Child();
parent.setChild(child); // attribute is annotaded @ManyToOne(cascade = CascadeType.PERSIST)

Будет это имеет значение, если я явно сохраняюсь, дополнительно (то есть entityManager.persist(child);)?
Есть ли лучшие рекомендации по добавлению этой строки?

Замечание: Я заметил, что, по крайней мере, в OpenJPA, новая сущность не будет немедленно помещена в контекст постоянства, т.е. в приведенном выше примере (без entityManager.persist(child)) мы имеем следующее поведение:

System.out.println(entityManager.contains(child)); // -> false
entityManager.flush();
System.out.println(entityManager.contains(child)); // -> true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...