Frage

Ich habe eine Tabelle, die große Datenmengen enthält. Ich möchte Hibernate automatische Versionierung dieser Tabelle hinzuzufügen. Aber das Hinzufügen einer nicht-Null-Spalte dieser Tabelle für die Versionierung ist sehr teuer wegen großen Daten. Gibt es eine Abhilfe so Hibernate mit Nullable-Spalte arbeiten? Derzeit gibt Hibernate NPE, weil es einen Nullwert zu erhöhen versucht. (Wie Hibernate diese intern verwaltet, die Änderung der Versionswert auf Client-Seite ist nicht in Frage) Alle anderen Versionierung startegy ist willkommen zu. Vielen Dank im Voraus

War es hilfreich?

Lösung

Wenn Ihr Geschmack der Datenbank es ermöglicht, können Sie die Standardoption verwenden. Dies ist gegen Oracle ...

SQL> create table t23 as select object_id as id from user_objects;

Table created.

SQL> desc t23
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER

SQL> alter table t23 add hibernate_version_number number default 0 not null;

Table altered.

SQL> desc t23
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ID                                                 NUMBER
 HIBERNATE_VERSION_NUMBER                  NOT NULL NUMBER

SQL> select count(*) from t23 where hibernate_version_number = 0;

  COUNT(*)
----------
       504

SQL>

Sie können jedoch immer noch wollen, seine Leistung gegen ein realistisches Datenvolumen zu Benchmark. Es kann nicht Ihr Problem lösen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top