如何使用JPA Hibernate从PostgreSQL中检索时间戳值“-infinity”

时间:2013-10-09 15:22:04

标签: java hibernate postgresql jpa

我正在尝试获取存储在PostgreSQL 9.1中的值。字段类型是“带时区的时间戳”。存储的值是“-infinity”。当我使用JPA / Hibernate注释时,它为我提供了一个奇怪的日期值。 My Entity Java类已将日期声明为java.util.Date()。

当我从Java打印我的日期,JPA / Hibernate从PGSQL检索时,这是System.out。

292269055-12-02 23:00:00.0

以下是我的Java实体的片段,显示了我日期类型的注释。

    @Column( name = "from_date")
    private Date    from_date;

我在某处读过PostgreSQL的JDBC驱动程序可以存储和读取存储为“-infinity”和“infinity”的时间戳值。如果Hibernate / JPA不支持,那么可以使用自定义转换器来获取这些值吗?

感谢。

1 个答案:

答案 0 :(得分:1)

你需要专门的Postgre Infinity吗?否则只需创建自己的。无论如何,Java Date最大年份和Postgre Infinity年份都不同。

public class InfinityProducer {

  public Date getInfinity() {
     Date date = new Date();
     date.setYear(292278994);
     return date;
  }
}