EntityManager + Spring Transactional Question - PullRequest
0 голосов
/ 27 декабря 2010

У меня есть сомнения в концепции, я думаю, что я смешиваю некоторые вещи.У меня есть приложение со слоем DAO, реализация этих DAO использует SessionFactory (Hibernate) для выполнения операции CRUD, у меня также есть сервисный уровень, и я управляю своей единицей работы с Spring декларативной транзакцией, и все работает нормально, я не уверен насчетМожно ли использовать EntityManager или нет, но кажется, что он управляет моей единицей работы (то же самое, что я делаю с Spring).

Когда я должен использовать EntityManager?Каковы преимущества его использования?Зачем мне его использовать?

Спасибо.

1 Ответ

2 голосов
/ 27 декабря 2010

EntityManager для JPA, что SessionFactory для Hibernate.Spring по-прежнему может управлять вашей транзакцией, даже если вы используете JPA.Если вашим провайдером JPA является Hibernate, то вы можете безопасно смешивать и подбирать Hibernate и JPA, поскольку они оба работают вместе.

Теперь перейдем к вопросу о том, когда использовать EntityManager и о его преимуществах:

Если вы начинаете новый проект и можете использовать JPA 2, тогда я предлагаю вам начать использовать его, поскольку JPAспецификация (означает, что если вы придерживаетесь спецификации, то вы можете изменить реализации без изменения кода. Eclipseling, DataNucleus, OpenJPA - некоторые примеры реализации спецификации JPA).Если вы не можете перейти на JPA 2, тогда я предлагаю вам придерживаться Hibernate.

Также просмотрите следующие сообщения

Что предлагает Hibernate / Toplink выше JPA?

JPA или Hibernate для персистентности Java?

JPA 1 недостаточно хорош

...