Какие-либо недостатки использования Hibernate EntityManager (по сравнению с Hibernate Core)?
Документация Hibernate EntityManagerсостояния, тот:
Вы можете использовать комбинацию всех трех вместе, аннотации без интерфейсов программирования JPA и жизненного цикла или даже чисто нативное ядро Hibernate, в зависимости от бизнес-требований и технических требований вашего проекта. Вы всегда можете прибегнуть к собственным API-интерфейсам Hibernate или, при необходимости, даже к собственным JDBC и SQL.
Код, использующий API-интерфейс JPA (EntityManager), явно более переносим (даже со случайными откатами к Hibernate Core).
Но будут ли у меня какие-либо преимущества при использовании чисто Hibernate Core? Интересно, действительно ли модель JPA 2 подходит поверх Hibernate Core без каких-либо противоречий? IOW, всегда ли откат к Core всегда легок и без проблем?
Моя главная проблема заключается в следующем:
Может быть, различия не только в API, но и в базовомсемантика?! (например, другая семантика транзакций / управления версиями / блокировок, которая может конфликтовать: пессимистическая блокировка упоминается в документации Core, но не в документации EntityManager - так что я мог бы по-прежнему использовать пессимистическую блокировку, возвращаясь к Core, не вызывая проблем? .)