JPA: Расширение контекста персистентности и отсоединение сущностей

Похоже, есть два шаблона для реализации бизнес-транзакций, охватывающих несколько HTTP-запросов с JPA:

  1. entity-manager-per-request с отдельными объектами
  2. расширенный контекст персистентности

Каковы соответствующие преимущества этих шаблонов? Когда что следует предпочесть?

Итак, я придумал:

  • расширенный контекст персистентности гарантирует, что идентичность объекта эквивалентна идентичности базы данных, упрощая модель программирования и потенциально устраняя необходимость реализации равенства для сущностей
  • ] для отдельных объектов требуется меньше памяти, чем для расширенного контекста постоянства, поскольку контекст постоянства также должен хранить предыдущее состояние объекта для обнаружения изменений
  • , на которые больше не ссылаются, отдельные объекты становятся доступными для сборки мусора; постоянные объекты должны быть сначала явно отсоединены

Однако, не имея практического опыта работы с JPA, я уверен, что упустил что-то важное, отсюда и этот вопрос.

В случае, если это имеет значение: мы намерены использовать JPA 2.0 с поддержкой Hibernate. 3.6.

Правка : Наша технология представления - это JSF 2.0, в контейнере EJB 3.1, с CDI и, возможно, с швом 3.

11
задан meriton - on strike 21 June 2011 в 21:47
поделиться