无法使用Hibernate将Date对象插入PostgreSQL Timestamp列

时间:2013-07-08 06:32:30

标签: java hibernate postgresql timestamp

我正在尝试使用primefaces schedule组件,我发现在数据库中插入date()时出现问题(postgresql),java的日期类型和poststamp postgres之间存在不兼容的问题我似乎无法解决:

org.hibernate.exception.DataException nested exception is: 
ERROR: invalid input syntax for type timestamp : 
    "16:00:00.747000 +00:00:00"

这是我在数据库中测试插入的函数:

@Test
public void testEdit() {
    Event event = new Event(); 
    Calendar t = (Calendar) today().clone();   
    t.set(Calendar.AM_PM, Calendar.PM);  
    t.set(Calendar.DATE, t.get(Calendar.DATE) + 4);  
    t.set(Calendar.HOUR, 4); 
    event.setStartDate(t.getTime());
    sessionService.save(event);
}

1 个答案:

答案 0 :(得分:2)

看起来您的Hibernate映射不正确。您需要将列映射为临时“时间戳”字段,但看起来您的计算机只是发送时间。时间戳有一个日期组件,但"16:00:00.747000 +00:00:00"中没有日期。

您尚未显示该实体的映射,因此很难更具体。如果您正在使用JPA2映射注释:

@Temporal(TIMESTAMP)