2017-12-10 5 views
0

Ich muss eine Webanwendung mit Java EE (Servelt/JPA) entwickeln, die von mehreren Kunden benutzt wird, die jeweils eine eigene Datenbank haben. Natürlich haben alle Datenbanken die gleiche Struktur. Also meine Frage ist: Ist es für eine JPA-Anwendung möglich, auf mehrere Datenbanken zuzugreifen?JPA eine Webanwendung mit mehreren Datenbanken

+0

Ein EntityManagerFactory zu einer Datenbank eine Verbindung zu verwenden. Wie Sie dann JPA in Ihrer Situation verwenden, sollte aufgrund dieser Tatsache offensichtlich sein, nein? –

+0

lesen Sie über 'Multitenant' Konzept. http://www.eclipse.org/eclipselink/documentation/2.5/jpa/extensions/a_multimenant.htm –

+0

Danke, es scheint, dass EntityManagerFactory ist der Beginn einer Lösung, um dynamisch einen EntityManager –

Antwort

0

Die Antwort ist ja, Sie können. Sie benötigen mehr als eine Persistenzeinheit in Ihrer persistence.xml.

<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"> 

<persistence-unit name="one" transaction-type="JTA"> 
    ... 
</persistence-unit> 

<persistence-unit name="two" transaction-type="JTA"> 
    ... 
</persistence-unit> 

Sie müssen auch Ihre EJB sagen, eine bestimmte Persistenzeinheit

@PersistenceContext(unitName="...") 
+0

Danke, aber ich muss die Anwendung ändern und erneut bereitstellen, jedes Mal wenn ich einen Client und seine Datenbank hinzufügen, und ich wünschte, ich würde das nicht tun müssen! –

Verwandte Themen