簡體   English   中英

JPA + PostgreSQL:只有時間被持久化

[英]JPA + PostgreSQL: Only time being persisted

我有一個 PostgreSQL 表,其中包含一個timestamp without time zone字段的timestamp without time zone 這在我的 Java 代碼中配置如下:

@Column(name = "timestamp")
@Temporal(TemporalType.TIMESTAMP)
private java.util.Date timestamp;

時間戳屬性被設置為new Date()即包含日期和時間。 然而,在數據庫中,日期部分沒有被持久化,例如“14:40:28.889”; 因此,當它從數據庫中檢索時,不會加載日期並設置為默認值,即 01/01/1970。 時間戳的日期部分正在運行的任何想法?

更新:我增加了 hibernate 的日志記錄級別,因此我可以通過在 application.properties 文件中添加以下內容來查看正在保存的內容:

logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type=TRACE

日志輸出如下:

binding parameter [6] as [TIMESTAMP] - [Wed Sep 16 08:57:03 CEST 2015]

更新 2:

我單步執行代碼,發現插入 sql 的日期格式為2015-09-16 11:16:09.416000 +02:00:00 我在 PGAdmin 中自動插入字符串,它插入沒有錯誤。 保存后點擊小刷新按鈕,日期部分消失了! 所以數據被正確保存,但不知何故 postgre 之后做了一些奇怪的事情。

這是有史以來最愚蠢的錯誤之一,我有一個創建表的腳本,它被標記為“沒有時區的時間”,即不是時間戳,因此 PostgreSQL 顯然刪除了日期。 我會留下這個問題,因為它可能會幫助某人調試類似的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM