Injection Hibernate Session and SessionFactory
JBoss EJB 3.0では@PersistenceContextにEntityManagerだけではなくHibernateのSessionも注入できます。JBossだからなせるワザ。
import org.hibernate.Session; import org.hibernate.SessionFactory; @Stateful public class MyStatefulBean ... { @PersistenceContext(unitName="crm") Session session1; @PersistenceContext(unitName="crm2", type=EXTENDED) Session extendedpc; @PersistenceUnit(unitName="crm") SessionFactory factory; }
EntityManagerからHibernate Sessionを取り出すことも可能です。だって、Hibernate EntityManagerはSessionのラッパーですから。
@PersistenceContext EntityManager entityManager; public void someMethod(); { org.jboss.ejb3.entity.HibernateSession hs = (HibernateSession)entityManager; org.hibernate.Session session = hs.getHibernateSession(); }