Ich verwende den DashDB-Datenbankservice von IBM Bluemix, um eine Cloud-Anwendung zu erstellen. Nun, wenn ich meine App starte, wird die hbm2ddl.auto -Eigenschaft in den Ruhezustand versetzt, so dass sie meine DashDB-Datenbank aktualisiert.DashDB - Probleme beim Generieren eines Fremdschlüssels mit Hibernate
jedoch der folgende Fehler erscheint auf der Konsole:
[ERROR ] HHH000388: Unsuccessful: alter table DASH104411.table1 add constraint
FK_m1vvn3lavq1rjt9oghf0m3x5t foreign key (id_table2) references DASH104411.table2
[ERROR ] DB2 SQL Error: SQLCODE=-1667, SQLSTATE=42858, SQLERRMC=DASH104411.TABLE2;
ORGANIZE BY COLUMN;ENFORCED, DRIVER=4.19.49
Ich weiß, dass standardmäßig die für dashDB erstellt Tabellen, die von Spalte organisiert sind und nur nicht-erzwungene Referenzrandbedingungen unterstützt werden. Wie erzeuge ich Fremdschlüssel, die nicht durch den Ruhezustand erzwungen werden? Gibt es eine Möglichkeit, Tabellen zu generieren, die nach Zeilen durch Ruhezustand organisiert sind?
In der Tat, die hbm2ddl hat diese Flexibilität nicht. Aber ich habe gesehen, dass Hibernate ein anderes Tool hat, mit dem der Entwickler einen eigenen DLL-Generator erstellen kann. Dieses Thema ist sehr aufschlussreich zu dem Thema: http://stackoverflow.com/questions/438146/hibernate-hbm2ddl-auto-possible-values-and-what-they-do – Islon
Wenn Sie bereit sind, durch einige Reifen gehen, u kann Code schreiben, damit Hibernate die DDLs in eine Datei schreibt (http://jandrewthompson.blogspot.in/2009/10/how-to-generate-ddl-scripts-from.html). Anschließend bearbeiten Sie die Datei von Hand und fügen die Klausel 'organize_by_row' der DDL für die Erstellungstabelle hinzu. Führen Sie diese Datei jetzt in Ihrer dashDB-Instanz aus –