2011-07-26 62 views
0

我想創建created_on列 - 此列應存儲行創建的日期和時間。根據版本列創建列上創建NHibernate

我還使用版本列 - 保存記錄的最後一次更新時間的列,這與Nhibernate一起提供。

我想要做的是將行插入到數據庫時將版本列值複製到created_on列。 意思是,如果版本被修改並且實體是新的(我們是預沖洗),我需要將version列的值放入created_on列中,就是這樣。

到目前爲止,我只管理了插入後使用攔截器和覆蓋PreFlush後的額外更新。

我正在用Nhibernate 3和Oracle 有什麼建議嗎?

回答

1

我對Nhibernate一無所知,但是......據我所知......爲什麼不使用數據庫觸發器?後插入觸發器。

或者,更簡單(或者太簡單),您可以使用默認值sysdate創建created_on列。

+0

在多個數據庫上工作。 –

+0

我想我不明白你的問題/情況。 –

1

聽起來你正在使用「DB Timestamp」版本控制。你可以使用正常的時間戳嗎?如果您在代碼中設置值,這將變得微不足道。

另一種替代方法是將您在列上創建的列設置爲不可變(只讀)並使用數據庫級缺省值CURRENT_TIMESTAMP。如果我正確地使用數據庫來設置版本列,這應該給你在插入的兩列中相同的值。