通过JPA获取存储在Postgres中的BC年日期忽略了那个时代

时间:2019-04-17 14:55:08

标签: java postgresql hibernate jpa localdate

我正在使用BeforeChrist Era,并且将日期作为Date类型存储在PostgreSQL中,并且工作正常。选择查询给了我这个:1001-01-01 00:00:00 BC没关系。为了以这种方式将日期保留在数据库中,我将-1000-01-01 LocalDate Java 8对象传递给我的JPA实体:@Column(nullable = false) private LocalDate date; 我的问题是,当我通过JPA从数据库中获取此实体时,它完全忽略了“ BC”,并向我返回了具有2001年之后的LocalDate date字段值为1001-01-01的实体。如何让JPA考虑到该“ BC”?

P.S。在我实施Converter之前,它只是数据库中的1001-01-01 BC,取回持久化实体时具有相同的BC无知。

@Converter(autoApply = true)
public class DateORMConverter implements AttributeConverter<LocalDate, Date> {


    @Override
    public Date convertToDatabaseColumn(LocalDate attribute) {
        return attribute != null ? Date.valueOf(attribute) : null;
    }

    @Override
    public LocalDate convertToEntityAttribute(Date dbData) {
        return dbData == null ? null : dbData.toLocalDate();
    }
}

0 个答案:

没有答案