Seleccionar página

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;