2013-09-26 51 views
1

我們需要在每個表中添加兩列 - created_date和updated_date。 數據庫的類型可以是以下任何一種:Oracle,MySQL,PostgreSQL,CouchDB。休眠 - 數據庫自動created_date和updated_date

這兩列應該存儲日期和時間。 created_date只能在創建行時填充。 updated_date應該在每次更新行時填充(在創建時也是如此)。

該解決方案適用於運行大量Hibernate JVM的雲。 由於沒有單個JVM,它們有時可能會不時出現同步。 因此,我們不希望解決方案在這兩列中填充JVM時間。

在Hibernate中有沒有一種與數據庫無關的方法? 我們希望將日期創建/更新的責任放在數據庫本身上。 觸發器將是我們想要嘗試的最後一個選項,因爲這對每個表格都會產生麻煩。

理想的解決方案是在JPA/Hibernate中使用某種註釋,它會指示ORM工具在插入/更新期間從DB創建或更新日期。

+0

我試着用下面的SQL(對於Oracle):

 create table tmptmp ( id number(10), ct TIMESTAMP DEFAULT CURRENT_TIMESTAMP, ut TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE TIMESTAMP ); 
但它給我的錯誤: 錯誤在命令行:5列:42 錯誤報告: SQL錯誤:ORA-00907:缺少右括號 00907. 00000 - 「缺少右括號」 *原因: *操作: – user2250246

回答