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 недостаточно хорош