Hallo alle zusammen,
ich muss seit Kurzem an einem System arbeiten das bislang mit Java und Hibernate eine PostgreSQL-DB ansteuerte. Die Business Entities wurden mittels Annotationen gemapped. In der Datenbank wurden Sequenzen definiert und in den entsprechenden Klassen findet sich der Eintrag:
Code:
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
Soweit läuft alles hervorragend. Mich persönlich hat gewundert, dass man bei einer Postgres-DB mit IDENTITY arbeiten kann - aber nun gut. Für die Zukunft soll das System ebenfalls auf Oracle und MSSQL laufen. Ich hatte daher geplant zukünftig bzgl. der Sequenzen
Code:
@Id @GeneratedValue(strategy=GenerationType.AUTO)
einzusetzen. Nachdem ich es im laufenden Betrieb (lokale Testversion) geändert hatte, lief das System nicht mehr vernünftig.
Quote:
javax.servlet.ServletException: could not get next sequence value
Ändere ich es zurück, ist wieder alles in Ordnung. Ich habe nun zwei grundlegende Fragen, die ich nicht selbst beantworten kann.
1) Würde der GenerationType.AUTO auf allen drei DB-Typen laufen und müsste ich dafür ggf. noch etwas Besonderes beachten ? (Ich habe irgendwo gelesen, dass man zumindest bei Postgres-DB's eine Standardsequenz einrichten muss)
2) Ich habe derzeit eine bestehende Datenbankstruktur in meiner Datenbank. Zukünftig würde ich diese gerne bei der Erstanwendung mittels Hibernate in die zugrunde liegende Datenbank (Postgres, Orcale oder MSSQL) einmalig zur Einrichtung importieren. Gibt es eine Möglichkeit die vorhandene Struktur aus der DB zu exportieren und sie in ein Format zu wandeln, dass Hibernate wieder in die entsprechende Datenbank später importieren kann ? (Hibernate-XML?)
Über eure Antworten würde ich mich sehr freuen.
VG
bluma