Поскольку EntityManager
является частью стандарта - JPA.Теоретически, вы можете переключать реализации (Hibernate, EclipseLink, OpenJPA), если вам нужно.Помимо предполагаемой переносимости, между этими двумя понятиями нет большой разницы.
Hibernate реализует стандарт JPA.Фактически, у EntityManager
есть делегат, основанный на конкретной реализации.Для Hibernate делегатом является Session
.Если вы позвоните getDelegate()
, он вернет текущее значение Session
.
. Я всегда использовал спящий режим с JPA (EntityManager) и очень редко имел необходимость получить сеанс.