persistencecontext how for example createentitymanagerfactory hibernate jpa

hibernate - how - no persistence provider for entitymanager named



Obtenga Hibernate SessionFactory de entityManagerFactory de JPA (4)

Necesito una característica específica de hibernate que es StatelessSession y para eso necesito SessionFactory de Hibernate. El problema es que solo tengo el entityManagerFactory. ¿Cómo puedo obtener una StatelessSession en este escenario?


Hibernate> = 4.3 soporta JPA 2.1. Así que puedes usar EntityManagerFactory.unwrap como emf.unwrap (SessionFactory.class) allí.


Intente convertir EntityManagerFactory en HibernateEntityManagerFactory .

Dado que EntityManagerFactory no admite unwrap() (a diferencia de EntityManager ), parece ser la única forma de lograr su objetivo.



Opción 1 a través de EntityManagerFactory

Si usa Hibernate >= 4.3 y JPA 2.1 , puede acceder al SessionFactory desde un EntityManagerFactory hasta <T> T EntityManagarFactory#unwrap(Class<T> cls) .

SessionFactory sessionFactory = entityManagerFactory.unwrap(SessionFactory.class);

Opción 2 a través de EntityManager

Si usa Hibernate >= 4.3 y JPA >= 2.0 , puede acceder a la Session desde EntityManager través de <T> T EntityManagar#unwrap(Class<T> cls) . Desde la Session puede obtener la SessionFactory .

Session session = entityManager.unwrap(Session.class); SessionFactory sessionFactory = session.getSessionFactory();