Java Hibernate:自动版本控制可空列
我有一个包含大量数据的表格。我想将hibernate自动版本控制添加到此表中。但是,由于数据量巨大,向该表中添加NOTNULL列进行版本控制的成本非常高。是否有一种变通方法可以让hibernate处理可为null的列?目前hibernate提供NPE是因为它试图增加一个空值。 (由于hibernate在内部进行管理,更改客户端的版本值是毫无疑问的)Java Hibernate:自动版本控制可空列,java,hibernate,Java,Hibernate,我有一个包含大量数据的表格。我想将hibernate自动版本控制添加到此表中。但是,由于数据量巨大,向该表中添加NOTNULL列进行版本控制的成本非常高。是否有一种变通方法可以让hibernate处理可为null的列?目前hibernate提供NPE是因为它试图增加一个空值。 (由于hibernate在内部进行管理,更改客户端的版本值是毫无疑问的) 任何其他版本的startegy都是受欢迎的。提前感谢如果您的数据库风格允许,您可以使用默认选项。这是针对甲骨文的 SQL> create ta
任何其他版本的startegy都是受欢迎的。提前感谢如果您的数据库风格允许,您可以使用默认选项。这是针对甲骨文的
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>
但是,您可能仍然希望根据实际的数据量对其性能进行基准测试。这可能无法解决您的问题。这只适用于Oracle 11g,在Oracle 11g中,添加默认值是一个固定时间操作,请参阅