我有一个包含大量数据的表格。我想为这个表格添加hibernate自动版本控制。但是由于数据量太大,为了实现版本控制而向这个表格添加非空列非常昂贵。是否有一种解决方法,使得hibernate可以使用可空列?目前,hibernate会因为尝试增加null值而导致NPE。
如果有其他版本控制策略也欢迎提供。谢谢!
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>
不过,您可能仍然希望针对实际数据量来进行性能基准测试。这并不一定解决您的问题。