Configurar un Seam managed persistence context para un persistence-unit:
Supongamos que por necesidades de una aplicación tenemos varios persistence units, por ejemplo:
<persistence-unit name="otherPUnit"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/otherDS</jta-data-source> <properties> <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/> ... </persistence-unit>
Y queremos que ese persistence-unit esté disponible para inyectarlo en nuestros componentes seam.
Para ello, hay que añadir en components.xml (recordar que puede ir en META-INF):
<persistence:entity-manager-factory name="otherEntityManagerFactory" persistence-unit-name="otherPUnit"/> <persistence:managed-persistence-context name="otherEntityManager" auto-create="true" entity-manager-factory="#{otherEntityManagerFactory}"/>
También es necesario añadir la siguiente propiedad a las propiedades de la persistence-unit en persistence.xml
<persistence-unit name="otherPUnit"> ... <properties> ... ... </persistence-unit>
Finalmente, en un componente seam:
@In("otherEntityManager") EntityManager em;
0 comentarios