在我的實體類的一個日期字段定義如下錯誤日期:JPA和sqlite3的 -
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "LAST_EXECUTED")
private Date lastExecuted = new Date();
然而,當它是通過JPA持久化到sqlite3的數據庫,該數據庫值始終是「1899年至1812年-30' 。你有什麼想法爲什麼?
在數據庫中,該字段被定義爲DATETIME
。
我試過使用SqliteJDBC和Xerial SQLite JDBC。
更新:中的EclipseLink JPA打開SQL調試,並關閉參數結合後,它看起來像日期插入如下:
insert into run (last_executed) values ('{ts ''2012-02-17 10:34:58.013''}');
,如果插入,手動SQLite中,給出了日期'1899-12-30'。
當然,任何解決方法將不勝感激。
很明顯,您正在使用JPA的特定實現,並且每個JPA實現都會給出不同的結果。因此,實際上提及哪些JPA實施將是一種幫助;-) – DataNucleus 2012-02-17 08:20:35
對不起;它是EclipseLink JPA。 – Dario 2012-02-17 09:37:46
無法幫助您,因爲DataNucleus JPA會執行INSERT作爲「INSERT INTO A(LAST_EXECUTED)VALUES('2012-02-17 13:41:09.453')」,並且在檢索時存在持續存在的所有數據 – DataNucleus 2012-02-17 13:43:28