persistence.xml für mehrere persistenzeinheiten

Ich versuche beibehalten der gleichen Person zu MySQL-und Postgres-Datenbanken (dies ist in Erster Linie der Identifikation von Inkonsistenzen, und arbeiten Sie heraus, die details der Probleme dabei die dual-schreiben-was, wie ich ausgeführt habe in hier). Die Artikel, die ich gefunden habe, haben alle beschriebenen Lösungen an, abhängig von weiteren Rahmenbedingungen. Ich versuche, dies zu lösen, mit Glassfish 4.0 out-of-the-box, JPA 2.1 mit EclipseLink 2.5 als JPA-provider. Ich bin mit Eclipse und erkennen, dass die IDE nicht unterstützt Konfiguration mehrerer Ausdauer Einheiten in der persistence.xml Datei, so Schreibe ich die XML denn das direkt.

Ich hatte erwartet, etwas zu tun, wie dies im code (in der gleichen Methode):

@PersistenceContext(name = "MyAppMySQLPU")
EntityManager emMySQL;
@PersistenceContext(name = "MyAppPostgresPU")
EntityManager emPostgres;
//...etc...
MyThing thing = new MyThing();
//...etc...
emMySQL.persist(thing);
emPostgres.persist(thing);

verwenden und eine persistence.xml Datei mit dieser:

  <persistence-unit name="MyAppPostgresPU">
    <jta-data-source>jdbc/PostgresPool_test</jta-data-source>
    <class>model.MyThing</class>
  </persistence-unit>

  <persistence-unit name="MyAppMySQLPU">
    <jta-data-source>jdbc/MySQLPool_test</jta-data-source>
    <class>model.MyThing</class>
  </persistence-unit>

Wenn ich dies mache, bekomme ich die folgende Fehlermeldung:

SEVERE: Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method
SEVERE: Exception while preparing the app
SEVERE: Exception while preparing the app : Could not resolve a persistence unit corresponding to the persistence-context-ref-name [MyAppPostgresPU] in the scope of the module called [MyApp]. Please verify your application.

Aber, Wenn ich nur eines der <persistence-unit> Sätze (egal welche), die Entität persistiert der damit verbundenen Datenbank-ich habe nur nicht herausfinden können, wie man es für die Arbeit mit beiden zur gleichen Zeit (ohne Nutzung von Persistenz-Funktionalität in weitere frameworks).

InformationsquelleAutor CraftWeaver | 2013-08-16

Schreibe einen Kommentar