The Java Persistence API allows you to define multiple persistence units, each of which can map to a separate database. If you look at the persistence.xml file :

   <persistence>
    <persistence-unit name="sample-db1">
     <provider>org.hibernate.ejb.HibernatePersistence</provider>
     <jta-data-source>jdbc/SamplesDB</jta-data-source>
    </persistence-unit>
    <persistence-unit name="sample-db2">
     <provider>
      oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
     </provider>
     <jta-data-source>jdbc/SamplesDB2</jta-data-source>
    </persistence-unit>
   </persistence>

The sample-db1 and sample-db2 persistence units are used to create and inject the appropriate entity managers into your EJB. Here is the code in the session bean that injects the entity managers with a transactional persistence context:

   @PersistenceContext(unitName="sample-db1", 
          type=PersistenceContextType.TRANSACTION)
   private EntityManager em1;
       
   @PersistenceContext(unitName="sample-db2", 
          type=PersistenceContextType.TRANSACTION)
   private EntityManager em2;
0
0
0
s2smodern