28.4. Configuring Seam in J2EE

You can use Hibernate 3 or JPA instead of EJB3 persistence, and plain JavaBeans instead of session beans. You can still take advantage of Seam's declarative state management architecture, and it is easy to migrate to EJB3.
Unlike session beans, Seam JavaBean components do not provide declarative transaction demarcation. Most applications use Seam-managed transactions when using Hibernate with JavaBeans, but you can also manage your transactions manually with the JTA UserTransaction, or declaratively with Seam's @Transactional annotation.
The Seam distribution includes extra versions of the booking example application — one uses Hibernate3 and JavaBeans instead of EJB3, and the other uses JPA and JavaBeans. These example applications are ready to deploy into any J2EE application server.

28.4.1. Boostrapping Hibernate in Seam

Install the following built-in component to have Seam bootstrap a Hibernate SessionFactory from your hibernate.cfg.xml file:
<persistence:hibernate-session-factory name="hibernateSessionFactory"/>
To make a Seam-managed Hibernate Session available via injection, configure a managed session as follows:
<persistence:managed-hibernate-session name="hibernateSession" 
             session-factory="#{hibernateSessionFactory}"/>