2014-08-31 9 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 Remise Entity есть это поле с его геттер и сеттер:

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

все выглядит нормально, но дата я вставляются, как го на как раз время и никакая дата!
в pgAdmin III: "3:16:03"
с помощью моего приложения: "Чт Янв 01 3:16:03 1970 WET"

Я использую: Postgresql 9,3, 9.1-901-1.jdbc4 , eclipselink 2.5.2.
Нужна ваша помощь, чтобы исправить эту проблему. Благодарю.

+0

Вы имеете в виду, вы хотите, чтобы сохраняться дата + время? Итак, почему вы отмечаете это поле тем, что TemporalType ???? –

+0

временные типы, которые у нас есть, TIME, DATE и TIMESTAMP, с оракулом Я всегда использовал TIME, и сохраненное значение было как датой, так и временем. –

+0

ВРЕМЯ означает магазин Время, TIMESTAMP означает магазин DATE + TIME. Это в спецификации JPA –

ответ

0

Вам нужно использовать временную метку без часового пояса.

время без часовой пояс хранит только часть времени.

0

спасибо araqnoon за правильный ответ, только один точности для отображения поля оно должно выглядеть:

@Column(name = "date_remise") 
@Temporal(TemporalType.TIMESTAMP) 
private Date dateRemise; 
Смежные вопросы