2010-10-08 8 views
5

Können mehrere JPA-Persistenzeinheiten auf dieselbe Datenbank in verschiedenen Java-Projekten zeigen und gleichzeitig auf dem Server bereitgestellt werden? Zur gleichen Zeit, ich meine, nicht in der gleichen Sekunde entfaltet, aber zusammen entfaltet. Ich benutze eine hsqldb-Datenbank.Mehrere JPA-Persistenzeinheiten, die auf dieselbe Datenbank verweisen?

Ich habe ein Client-Server-Modell für mein Projekt. Ich habe eine einzige einheitliche Datenbanktabelle, in der der Server Daten füllt und der Client dann auf die Daten in einem anderen Projekt zugreift. Ich kann die Datenbank erfolgreich über den Server füllen. Aber wenn ich das Client-Projekt bereitstellen, werden alle Daten aus der Datenbank gelöscht.

Ich verwende <property name="hibernate.hbm2ddl.auto" value="update" /> für beide Persistenzeinheiten.

Antwort

2

Können mehrere JPA-Persistenzeinheiten auf dieselbe Datenbank in verschiedenen Java-Projekten verweisen und gleichzeitig auf dem Server bereitgestellt werden?

Solange Sie in beiden Projekten keine inkompatiblen Zuordnungen haben, sollte dies funktionieren. Sie können das Second-Level-Caching jedoch nicht verwenden.

Aber wenn ich das Client-Projekt bereitstellen, werden alle Daten aus der Datenbank gelöscht. (...)

das ist nicht wirklich das Verhalten würde ich mit hbm2ddl.auto Satz update erwarten würde, aber ich weiß nicht, ob das Verhalten definiert ist gut, wenn sie in einem „Cluster-like“ Umgebung verwendet (mit mehreren JVMs führen ein Update zur gleichen Zeit durch).

Was passiert, wenn Sie den Client bereitstellen, nachdem der Server-Teil fertig initialisiert ist?

Meine Tipps:

  • Setup-Protokollierung zu sehen, was genau
  • Wenn Sie die gleichen Einheiten teilen geschieht, tun vielleicht nicht update auf dem Client und dem Server (obwohl dieses shouldn‘ t ein Problem sein, wenn sie nacheinander ausgeführt werden).
  • Letztendlich don't use update at all on production database.
+0

Sie meinen, nur den Client bereitstellen und den Server deimplementieren? –

+0

@Vashishtha Nein, ich meine die Bereitstellung des Clients und des Servers, aber nur wenn die Aktualisierung des Schemas abgeschlossen ist. –

+0

@Pascal Ich mache genau dasselbe. Aber es funktioniert nicht :( –

Verwandte Themen