Когда постоянный объект становится отделенным

1

Может ли кто-нибудь помочь мне понять пример, когда именно постоянный объект становится отдельным объектом?

Теги:
hibernate
jpa

3 ответа

2
Лучший ответ

Он становится отсоединенным, когда:

  1. вы явно вызываете.detach()
  2. закрыть сеанс
  3. закрыть диспетчер объектов
2

Зависит от используемого контекста персистентности (транзакции или расширенного). См. Эту ссылку для описания. В основном в соответствии с другим ответом ЗА ИСКЛЮЧЕНИЕМ, что ответ пропускает отрыв, когда транзакция совершается при использовании транзакции PersistenceContext

1

Я думаю, что лучшее понимание того, когда компания отделяется, смотрит на то, что спецификация JPA говорит о жизненном цикле объекта.

Отдельный экземпляр объекта представляет собой экземпляр с постоянным идентификатором, который не является (или не более) связан с контекстом персистентности.

Это означает, что объект может считаться отсоединенным, даже если он вновь создан. Скажем, что наша сущность A имеет свой id, обозначенный как @Id @GeneratedValue. Таким образом, в основном поставщик JPA позаботится о присвоении идентификатора. Но если вы укажете A id явно (например, a.setId(1)), а затем передадите его на persist() вы получите Исключение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню