StatelessSession である hibernate の特定の機能が必要であり、そのためには Hibernate の SessionFactory が必要です。問題は、entityManagerFactory しかないことです。このシナリオで StatelessSession を取得するにはどうすればよいですか?
4 に答える
オプション 1 からEntityManagerFactory
を使用するHibernate >= 4.3
と、から までアクセスJPA 2.1
できます。SessionFactory
EntityManagerFactory
<T> T EntityManagarFactory#unwrap(Class<T> cls)
SessionFactory sessionFactory = entityManagerFactory.unwrap(SessionFactory.class);
オプション 2 からEntityManager
Hibernate >= 4.3
andを使用すると、から にJPA >= 2.0
アクセスできます。からを入手できます。Session
EntityManager
<T> T EntityManagar#unwrap(Class<T> cls)
Session
SessionFactory
Session session = entityManager.unwrap(Session.class);
SessionFactory sessionFactory = session.getSessionFactory();
Hibernate >= 4.3 は JPA 2.1 をサポートします。そこで、 emf.unwrap(SessionFactory.class) のように EntityManagerFactory.unwrap を使用できます。
このhttp://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/orm.html#orm-session-factory-setupのようにBeanを定義して、注入することで解決しました