Sconti Amazon fino al 60

La specifica JPA Java Persistence API, consente di utilizzare database multipli.

Java-persistence

In questa guida vedremo come si fa ad utilizzare database multipli con JPA. Supponiamo di avere molti dati da trattare, distribuiti in più di un database. Come si può fare con JPA? Esiste un modo per utilizzare database multipli con JPA? La risposta è SI! Vediamo come fare….

Il primo passo è quello di configurare JPA per utilizzare più database e lo si fa tramite il file persistence.xml. In particolare il persistence.xml può ospitare una o più persistence unit. Nell’esempio in basso abbiamo specificato due persistence unit che tramite l’elemento xml <jta-data-source> vanno a specificare il nome globale JNDI dell’origne dati utilizzata dall’application server.

<persistence>
 <persistence-unit name="sample-db1">
  <provider>org.hibernate.ejb.HibernatePersistence</provider>
  <jta-data-source>jdbc/SamplesDB1</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>

Le persistence unit: sample-db1 e sample-db2 sono relative ai data source jdbc/SampleDB1 e jdbc/SampleDB2.

 

Portatili notebook amazon

 

Una volta definito il persistence.xml, si possono poi iniettare gli EntityManager all’interno del nostro EJB come segue.

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

Il contesto di persistenza degli EntityManger viene definito specificando lo unitName della persistence unit relativa.

Lascia una risposta

Please enter your comment!
Please enter your name here