2016-05-27 13 views
0

ich meine Tabelle in zwei verschiedenen Datenbanken gespeichert werden sollen (zum Beispiel: HyperSQL und MYSQL):JPA: Eine Tabelle mit zwei verschiedenen Datenbanken

@Entity(name="users") 
@Table(name = "users", schema = "[email protected]_pu") 
@Table(name = "users", schema = "[email protected]_pu") 
public class UserEntitie implements Serializable {} 

, aber ich kann nicht Tabelle Anmerkung wie diese duplizieren keine Idee, wie kann ich dies tun, ohne meine Bean-Klasse zu duplizieren

Antwort

3

Dies ist der Grund, warum einige Leute empfohlen haben, Schema-Informationen in Annotationen zu setzen. Verwenden Sie orm.xml, um Schemainformationen (Schemaname, Tabellenname, Spaltenname usw.) anzugeben, und verwenden Sie einen orm.xml pro Datenspeicher, auf dem das System bereitgestellt wird. Dies bedeutet eindeutig eine EntityManagerFactory pro Datenspeicher; Sie können keine Klasse in mehreren Datenspeichern mit derselben EntityManagerFactory beibehalten.

Mithilfe von Anmerkungen können Sie nur einmal etwas angeben und müssen Java-Dateien manuell bearbeiten, um sie erneut bereitzustellen.

+0

Vielleicht ist es nicht möglich, orm.xml zu verwenden, weil ich mit kundera als Framework arbeite, nicht überwintern, schau: https://github.com/impetus-opensource/Kundera/issues/276 –

+1

Wenn deine JPA Anbieter behauptet, JPA-konform zu sein (was sie tun), dann sollte es orm.xml unterstützen. Da Ihr Anbieter scheinbar keine Unterstützung für orm.xml (grundlegende Funktionen) bietet, sollte er alle Anweisungen, die JPA-konform sind, entfernen (damit keine Zeit verschwendet wird). Vielleicht erzähl ihnen das. JPA hat orm.xml seit JPA 1 !! –

+0

@BillyFrost warum erzählst du es uns nicht. Ich bin Kundera Entwickler. wo hast du gelesen ** compliant bedeutet "alle Features unterstützen" **? Kundera spart Zeit. Überprüfen Sie, es ist [Startseite] (https://github.com/impetus-opensource/Kundera), ich denke, Sie können deutlich sehen, Anzahl der Stargazers, Beobachter, etc. –

Verwandte Themen