3
我有一張包含大量數據的表。我想添加休眠自動版本到這個表。但是,由於數據量龐大,向此表添加非空列用於版本管理非常昂貴。有沒有解決方法,讓休眠可以使用空列?目前休眠給NPE,因爲它試圖增加一個空值。 (由於hibernate在內部管理這個,所以在客戶端更改版本值是沒有問題的) 任何其他版本控制startegy也是受歡迎的。在此先感謝休眠:自動版本控制空列
我有一張包含大量數據的表。我想添加休眠自動版本到這個表。但是,由於數據量龐大,向此表添加非空列用於版本管理非常昂貴。有沒有解決方法,讓休眠可以使用空列?目前休眠給NPE,因爲它試圖增加一個空值。 (由於hibernate在內部管理這個,所以在客戶端更改版本值是沒有問題的) 任何其他版本控制startegy也是受歡迎的。在此先感謝休眠:自動版本控制空列
如果您的數據庫的風格允許它可以使用DEFAULT選項。這是針對甲骨文的...
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>
但是,您可能仍然希望將其性能與實際數據量進行基準比較。它可能無法解決您的問題。
感謝您的回答。 – anergy 2010-01-28 15:44:42
這隻適用於Oracle 11g,其中添加默認值是恆定時間操作,請參閱http://www.dba-oracle.com/t_oracle_column_default_value.htm – Rico 2012-07-31 10:08:21