Hibernate: Automatische Versionierung Nullable Column
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
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.