首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从JPA的SessionFactory中获取Hibernate SessionFactory

从JPA的SessionFactory中获取Hibernate SessionFactory
EN

Stack Overflow用户
提问于 2013-09-26 13:44:15
回答 4查看 44K关注 0票数 23

我需要hibernate的一个特定特性,即StatelessSession,为此我需要Hibernate的SessionFactory。问题是我只有entityManagerFactory。在这种情况下,我如何获得StatelessSession?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-26 20:02:31

我通过注入它来解决这个问题,定义了像这个http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/orm.html#orm-session-factory-setup那样的bean

票数 0
EN

Stack Overflow用户

发布于 2016-07-21 14:02:06

通过EntityManagerFactory通过选项1

如果您使用Hibernate >= 4.3JPA 2.1,您可以通过<T> T EntityManagarFactory#unwrap(Class<T> cls)EntityManagerFactory访问SessionFactory

代码语言:javascript
复制
SessionFactory sessionFactory = entityManagerFactory.unwrap(SessionFactory.class);

通过EntityManager 选项2

如果您使用Hibernate >= 4.3JPA >= 2.0,那么您可以通过<T> T EntityManagar#unwrap(Class<T> cls)EntityManager访问Session。从Session中可以获得SessionFactory

代码语言:javascript
复制
Session session = entityManager.unwrap(Session.class);
SessionFactory sessionFactory = session.getSessionFactory();
票数 46
EN

Stack Overflow用户

发布于 2013-09-26 14:07:15

尝试将EntityManagerFactory转换为HibernateEntityManagerFactory

由于EntityManagerFactory不支持unwrap() (与EntityManager不同),它似乎是实现目标的唯一途径。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19030022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档