2014-08-31 21 views
0

插入日期到PostgreSQL的我在PostgreSQL的無法通過的EclipseLink

CREATE TABLE remise 
(
id bigserial NOT NULL, 
date_remise time without time zone 
) 

該表和該代碼通過的EclipseLink插入一行到它:

Remise rm = new Remise(); 
rm.setId(1L); 
rm.setDateRemise(Calendar.getInstance().getTime()); //today 
dao.begin(); 
dao.save(rm); 
dao.commit(); 

在出讓實體I類有此領域與它的getter和setter:

@Column(name = "date_remise") 
@Temporal(TemporalType.TIME) 
private Date dateRemise; 

一切看起來不錯,但我得到插入日期就像個只是時間和日期!
中的pgAdmin III: 「3點16分03秒」
通過我的應用程序: 「週四1月1 3時16分03秒WET 1970年」

我使用的是:在PostgreSQL 9.3,9.1-901-1.jdbc4 ,eclipselink 2.5.2。
需要您的幫助來解決此問題。謝謝。

+0

你的意思是,你要堅持的日期+時間?那麼爲什麼你用那個TemporalType標記那個域? – 2014-08-31 07:03:20

+0

我們擁有的時間類型是TIME,DATE和TIMESTAMP,在oracle中,我總是使用TIME並且存儲的值是日期和時間。 – 2014-09-01 01:26:31

+0

TIME表示存儲時間,TIMESTAMP表示存儲日期+時間。它在JPA規範中 – 2014-09-01 05:34:24

回答

0

您需要使用沒有時區的時間戳。

沒有時區的時間只存儲時間部分。

0

謝謝araqnoon正確的響應,只是一個精度領域它必須看起來像的映射:

@Column(name = "date_remise") 
@Temporal(TemporalType.TIMESTAMP) 
private Date dateRemise;