我需要hibernate的一个特定特性,即StatelessSession,为此我需要Hibernate的SessionFactory。问题是我只有entityManagerFactory。在这种情况下,我如何获得StatelessSession?
发布于 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
发布于 2016-07-21 14:02:06
通过EntityManagerFactory通过选项1
如果您使用Hibernate >= 4.3和JPA 2.1,您可以通过<T> T EntityManagarFactory#unwrap(Class<T> cls)从EntityManagerFactory访问SessionFactory。
SessionFactory sessionFactory = entityManagerFactory.unwrap(SessionFactory.class);通过EntityManager 选项2
如果您使用Hibernate >= 4.3和JPA >= 2.0,那么您可以通过<T> T EntityManagar#unwrap(Class<T> cls)从EntityManager访问Session。从Session中可以获得SessionFactory。
Session session = entityManager.unwrap(Session.class);
SessionFactory sessionFactory = session.getSessionFactory();发布于 2013-09-26 14:07:15
尝试将EntityManagerFactory转换为HibernateEntityManagerFactory。
由于EntityManagerFactory不支持unwrap() (与EntityManager不同),它似乎是实现目标的唯一途径。
https://stackoverflow.com/questions/19030022
复制相似问题