Впадать в спящий режим:Обнуляемый Столбец Автоматического управления версиями

StackOverflow https://stackoverflow.com/questions/2146423

  •  23-09-2019
  •  | 
  •  

Вопрос

У меня есть таблица, которая содержит огромные данные.Я хочу добавить автоматическое управление версиями hibernate в эту таблицу.Но добавление ненулевого столбца в эту таблицу для управления версиями обходится очень дорого из-за огромного объема данных.Есть ли обходной путь, чтобы hibernate мог работать с нулевым столбцом?В настоящее время hibernate выдает NPE, поскольку он пытается увеличить нулевое значение.(Поскольку hibernate управляет этим внутренне, об изменении значения версии на стороне клиента не может быть и речи) Любой другой способ запуска версий также приветствуется.Заранее спасибо

Это было полезно?

Решение

Если ваш вкус базы данных позволяет это, вы могли бы использовать опцию ПО УМОЛЧАНИЮ.Это против 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>

Однако вы все равно можете захотеть сравнить его производительность с реальным объемом данных.Это может не решить вашу проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top