How do you retrieve Hibernate’s Session from an Entity ?

Reading the EJB 3.0 documentation it should be simply obtained by casting the EntityManager instance.

org.hibernate.Session session = (org.hibernate.Session)entityManager;

However, there seems to be a problem with JBoss AS 5.0, because a ClassCastException is issued.

You can use the the getDelegate() method of the entity manager to avoid this problem:

org.hibernate.Session session = (org.hibernate.Session)entityManager.getDelegate();