I need a specific feature of hibernate that is StatelessSession and for that I need Hibernate\'s SessionFactory. The problem is I only have the entityManagerFactory. How can I g
Try to cast EntityManagerFactory to HibernateEntityManagerFactory.
Since EntityManagerFactory doesn't support unwrap() (unlike EntityManager), it seems to be the only way to achieve your goal.
Hibernate >= 4.3 supports JPA 2.1. So you can use EntityManagerFactory.unwrap like emf.unwrap(SessionFactory.class) there.
Option 1 through EntityManagerFactory
If you use Hibernate >= 4.3 and JPA 2.1 you can accces the SessionFactory from a EntityManagerFactory through <T> T EntityManagarFactory#unwrap(Class<T> cls).
SessionFactory sessionFactory = entityManagerFactory.unwrap(SessionFactory.class);
Option 2 through EntityManager
If you use Hibernate >= 4.3 and JPA >= 2.0 then you can accces the Session from the EntityManager through <T> T EntityManagar#unwrap(Class<T> cls). From the Session you can obtain the SessionFactory.
Session session = entityManager.unwrap(Session.class);
SessionFactory sessionFactory = session.getSessionFactory();
                                                                        I solved it by injecting it, defining the bean like this http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/orm.html#orm-session-factory-setup