Obtenir Hibernate SessionFactory de JPA l'entityManagerFactory
J'ai besoin d'une fonctionnalité spécifique d'hibernate qui est statelesssession n', et pour cela j'ai besoin de Hibernate SessionFactory. Le problème est que je n'ai que le entityManagerFactory. Comment puis-je obtenir un statelesssession n', dans ce scénario?
OriginalL'auteur ibrabeicker | 2013-09-26
Vous devez vous connecter pour publier un commentaire.
Option 1 à
EntityManagerFactory
Si vous utilisez
Hibernate >= 4.3
etJPA 2.1
vous pouvez accces laSessionFactory
à partir d'unEntityManagerFactory
par<T> T EntityManagarFactory#unwrap(Class<T> cls)
.L'Option 2 par
EntityManager
Si vous utilisez
Hibernate >= 4.3
etJPA >= 2.0
alors vous pouvez accces laSession
de laEntityManager
par<T> T EntityManagar#unwrap(Class<T> cls)
. À partir de laSession
vous pouvez obtenir leSessionFactory
.OriginalL'auteur Paul Wasilewski
Essayez de lancer
EntityManagerFactory
àHibernateEntityManagerFactory
.Depuis
EntityManagerFactory
ne prend pas en chargeunwrap()
(contrairement àEntityManager
), elle semble être la seule façon d'atteindre votre objectif.A bien fonctionné pour moi: HibernateEntityManagerFactory emFactory = (HibernateEntityManagerFactory) em.getEntityManagerFactory();
OriginalL'auteur axtavt
Hibernate >= 4.3 soutient JPA 2.1. Ainsi, vous pouvez utiliser EntityManagerFactory.déballer comme emf.unwrap(SessionFactory.class).
OriginalL'auteur Christian Schneider
Je l'ai résolu par injection, la définition du bean comme ce http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/orm.html#orm-session-factory-setup
OriginalL'auteur ibrabeicker