2017-08-15 56 views
0

我使用爪哇8休眠5.2.9 我有一個包含可變端的對象錯誤節省LocalDateTime在TIMESTAMP

@Column(name = "end", nullable = false, columnDefinition = "TIMESTAMP") 
private LocalDateTime end; 

和在數據庫中的字段被定義爲

`end`  TIMESTAMP NOT NULL 

所以當我試圖做

sessionFactory.getCurrentSession().save(object); 

我得到

Caused by: com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect datetime value: '\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x84\xBA\x1B"H\xB2\x0C\x00\x00xpw\x0E\x05\x00\x00\x07\xE1\x08\x0F\x13\x1E\x13\[email protected]' for column 'end' at row 1 

不知道究竟我做錯了這裏,因爲我認爲Java的8和休眠5.2.9知道什麼LocalDateTime是。自從我卡住後,我將不勝感激。

+0

[這](https://www.thoughts-on-java.org/hibernate-5-date-and-time/)例子解釋了關於支持'LocalDateTime'的hibernate 5的java 8支持。它可能會有所幫助。 –

+0

@RajithPemabandu那篇文章指出我應該工作沒有任何問題。然而,它似乎不知何故,我不知道爲什麼。 – Quillion

回答

0

我認爲問題是你使用兩種不同的日期類型。

TIMESTAMP - : '1970-01-01 00:00:01' UTC

LocalDateTime - :2017-08-16T05:22:23.832`

使用一個Date甲酸

+0

我該如何去做? LocalDateTime是本地Java對象 – Quillion

+0

要保存的格式是什麼。 '2017-08-16T05:22:23.832' this one or'2017-08-15 03:14:07' this one or any other atmate –

+0

use this annotation'@Temporal(TemporalType.TIMESTAMP)' –