Spring Jpa LessThanEqual для поля postgres timestamp - PullRequest
0 голосов
/ 19 сентября 2019

В моем классе Entity есть полеffective_startdate.

@Basic
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "effective_startdate", columnDefinition = "TIMESTAMP WITHOUT TIME ZONE")
private Date effectiveStartdate;

, которое я хотел использовать в своем классе репозитория Jpa для фильтрации в своем методе getmapping для дальнейшего использования:

List<PoJoObject> findByEffectiveStartdateLessThanEqual(Date date);

Для всей этой операции мой db базы данных является postgres, и в этом же поле есть тип как TIMESTAMP.

Может ли кто-нибудь помочь мне получить ожидаемый формат ("гггг-мм-дд чч: мм: сс")ответ на мой вызов getmapping.

Я совершенно новичок в этом и не знал, как Spring внутренне работает с датой, сериализацией / десериализацией и сравнением с postgres db.

Примечание:

  • с использованием java.util.Date в java-коде.
  • postgres output_startdate выглядит следующим образом:

2019-09-19 18:28: 23.012

  • Формат ответа для того же поля имеет следующий вид:

"ffectiveStartdate ":" 2019-07-30T04: 37:55.000 + 0000 "

1 Ответ

1 голос
/ 19 сентября 2019

Вы должны добавить аннотацию JsonFormat к действующей дате запуска:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss.SSS")
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "effective_startdate", columnDefinition = "TIMESTAMP WITHOUT TIME ZONE")
private Date effectiveStartdate;

Кстати.аннотация @Basic не нужна, а имя столбца также является излишним, потому что именно так Hibernate переводит _ в camelCase.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...