我在表的答案被稱爲上次更改時間列,像下面上更新當前的時間戳的Mysql 5.6列在休眠不工作
+--------------+----------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+----------------+------+-----+-------------------+-----------------------------+
| answerId | int(11) | NO | PRI | NULL | auto_increment |
| totalComment | int(11) | NO | | 0 | |
| totalView | int(11) | NO | | 0 | |
| totalSpam | int(11) | YES | | 0 | |
| lastModified | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+--------------+----------------+------+-----+-------------------+-----------------------------+
每當我manullay更新到totalComment,TotalView軟件中的任何一個,totalSpam列mysql控制檯的lastModifed列也使用當前時間戳進行修改。但是當我用hibernate應用程序做同樣的事情時,它不會被修改。
我的應用程序是作爲spring數據jpa的一部分實現的。在application.yml中,我嘗試使用org.hibernate.dialect.MySQLDialect和兩者都使用org.hibernate.dialect.MySQL5Dialect但沒有幫助。
在我的註解回答實體類的LastModified列聲明如下
@Column
private Date lastModified;
public Date getLastModified() {
return lastModified;
}
public void setLastModified(Date lastModified) {
this.lastModified = lastModified;
}
任何想法?
對使用Hibernate的列進行的任何更改都保存到數據庫中? –
是的,但不是lastModified的當前時間戳值。 –
如果上次修改的字段是一個時間戳,如果記錄更改,它將設置爲當前時間,那麼您不應該手動更新它,只檢索其值。如果您修改記錄,Mysql將更新此字段。 – Shadow