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.
Lo resolví inyectándolo, definiendo el bean como este http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/orm.html#orm-session-factory-setup
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();