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