Hibernate: automatico delle versioni Nullable Colonna
Domanda
Ho una tabella che contiene i dati enorme. Voglio aggiungere Hibernate versioning automatico a questa tabella. Ma l'aggiunta di una colonna non-null a questa tabella per il controllo delle versioni è molto costoso a causa di dati enorme. C'è una soluzione in modo Hibernate può lavorare con colonna Null? Attualmente hibernate dà NPE perché cerca di incrementare un valore nullo. (Come Hibernate gestisce questo internamente, cambiando il valore versione sul lato client è fuori discussione) Ogni altro startegy versioni è il benvenuto troppo. Grazie in anticipo
Soluzione
Se il sapore della base di dati lo consente è possibile utilizzare l'opzione predefinita. Questo è contro 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>
Tuttavia, si può ancora voglia di punto di riferimento la sua performance con un volume realistica dei dati. Esso non può risolvere il problema.