Похоже, есть два шаблона для реализации бизнес-транзакций, охватывающих несколько HTTP-запросов с JPA:
- entity-manager-per-request с отдельными объектами
- расширенный контекст персистентности
Каковы соответствующие преимущества этих шаблонов? Когда что следует предпочесть?
Итак, я придумал:
- расширенный контекст персистентности гарантирует, что идентичность объекта эквивалентна идентичности базы данных, упрощая модель программирования и потенциально устраняя необходимость реализации равенства для сущностей
- ] для отдельных объектов требуется меньше памяти, чем для расширенного контекста постоянства, поскольку контекст постоянства также должен хранить предыдущее состояние объекта для обнаружения изменений
- , на которые больше не ссылаются, отдельные объекты становятся доступными для сборки мусора; постоянные объекты должны быть сначала явно отсоединены
Однако, не имея практического опыта работы с JPA, я уверен, что упустил что-то важное, отсюда и этот вопрос.
В случае, если это имеет значение: мы намерены использовать JPA 2.0 с поддержкой Hibernate. 3.6.
Правка : Наша технология представления - это JSF 2.0, в контейнере EJB 3.1, с CDI и, возможно, с швом 3.
задан meriton - on strike 21 June 2011 в 21:47
поделиться