Pregunta

Tengo una tabla que contiene datos de gran tamaño. Quiero añadir hibernación automática de versiones de esta tabla. Sin embargo, la adición de una columna no nulo a esta tabla de versiones es muy caro debido a los datos enormes. ¿Hay una solución alternativa por lo que Hibernate puede trabajar con la columna anulable? Actualmente hibernación da NPE porque trata de incrementar un valor nulo. (Como hibernación logra esto internamente, cambiando el valor de la versión en el lado del cliente está fuera de cuestión) Cualquier otro es de versiones startegy también dan la bienvenida. Gracias de antemano

¿Fue útil?

Solución

Si el sabor de la base de datos permite que usted podría utilizar la opción por defecto. Esto va en contra de 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>

Sin embargo, es posible que desee comparar su rendimiento frente a un volumen realista de datos. Puede que no resolver su problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top