2011-05-23 44 views
1

在MySQL中,可以在每次更新操作時更新TIMESTAMP行。有沒有辦法使用Hibernate實現這一點,並將其映射到POJO屬性?休眠「ON UDPATE CURRENT TIMESTAMP」列

所以,我有這樣的事情:

@Column 
private Date updated; 

感謝您的幫助。

回答

3

你可以有這個來完成這件事情

@PreUpdate 
protected void onUpdate() { 
    updated = new Date(); 
} 
+0

是的,如果你想通過數據庫方面看到axtavt的回答 – 2011-05-23 19:21:51

+0

我遵循你的方法,在我的情況下,它不工作,價值觀爲空。我正在使用Hibernate。你能幫我嗎。下面的答案正常工作 – Akhilesh 2013-02-27 11:59:30

5

如果你想在數據庫端做,你可以指定一個自定義的列定義(如果由Hibernate生成的模式,否則,你需要聲明它在模式中根據需要),並指示休眠,這家酒店是在數據庫方面產生:

@Column(columnDefinition = "TIMESTAMP ON UPDATE CURRENT TIMESTAMP") 
@Generated(GenerationTime.ALWAYS) 
private Date updated; 

或者,你可以在應用方面做,由Jigar喬希的建議。

+0

hibernate是否能夠在java.lang.Date和TIMESTAMP之間進行映射?在我的數據庫日期總是masp到DateTime。 – Erik 2011-05-23 21:02:24

+0

@Erik:也許不,我不確定它如何與你的DBMS協同工作。 – axtavt 2011-05-24 09:06:01

+0

我正在使用MySQL 5.1 – Erik 2011-05-24 09:40:34