Получение даты года до нашей эры, хранящейся в Postgres через JPA, игнорирует эпоху - PullRequest
1 голос
/ 17 апреля 2019

Я работаю с BeforeChrist Era и сохраняю даты в PostgreSQL как тип Date, и он отлично работает. Запрос на выборку дает мне это: 1001-01-01 00:00:00 BC что нормально. Чтобы сохранить эту дату в базе данных, я передаю объект -1000-01-01 LocalDate Java 8 моему объекту JPA: @Column(nullable = false) private LocalDate date; Моя проблема заключается в том, что когда я получаю эту сущность через JPA из базы данных, она полностью игнорирует «BC» и возвращает мне мою сущность с полем даты LocalDate со значением 1001-01-01, что происходит через 2001 год. Как я могу заставить JPA учитывать это "BC"?

P.S. до того, как я реализовал конвертер, он был просто 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();
    }
}
...