Jpa entitymanager: почему метод merge () возвращает управляемый объект?

Работа метода merge():

The merge(source entity) method is going to copy the detached entity state (source) to a managed entity instance (destination). If the merging entity has no equivalent in the current Session, one will be fetched from the database. The detached object instance will continue to remain detached even after the merge operation.

У меня вопрос:

Почему метод merge() копирует состояние отсоединенного объекта в управляемый объект, а не просто передает тот же отсоединенный объект в контекст персистентности?

3
0
177
1

Ответы 1

Метод <T> T merge(T entity) реализован согласно спецификации JPA. https://docs.oracle.com/javaee/7/api/javax/persistence/EntityManager.html#merge-T-

Returns:
the managed instance that the state was merged to

Что касается:

Why just dont pass the same detached entity to persistence context

Это именно то, что он делает. И для слияние данных создается управляемый объект (или извлекается из кеша), затем обновляется и возвращается.

Другие вопросы по теме