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}"/>