Hibernate: автоматическое управление версиями столбца Nullable - PullRequest
3 голосов
/ 27 января 2010

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

1 Ответ

2 голосов
/ 27 января 2010

Если ваш выбор базы данных это позволяет, вы можете использовать опцию DEFAULT. Это против 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>

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...