Как LocalDate должен храниться как свойство JSON в столбце postgres jsonb с Hibernate JPA?

#java #postgresql #hibernate #jpa #jackson

#java #postgresql #спящий режим #jpa #джексон

Вопрос:

У меня есть столбец jsonb в таблице postgres. Соответствующее поле сущности JPA является Java DTO со свойством LocalDate . Поле LocalDate сохраняется в postgres в виде того, что выглядит как список.

Сущность JAVA:

 @Entity
@Table(name = "my_entity")
public class MyEntity
{
    @EmbeddedId
    private EmbeddedId embeddedId;

    @Type(type = "jsonb")
    @Column(name = "jsonb_column", columnDefinition = "jsonb", nullable = false)
    private JavaDto javaDto;
}
  

JavaDto.java:

 @Data
@Builder
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class JavaDto
{
    private LocalDate localDate;
    private String type;
    private String id;
}
  

Пример строки в my_table таблице postgres:

 id                  | 90
other_col           | OTHER_COL_VAL
jsonb_column        | {"id": "123-some-id", "type": "someType", "localDate": [2021, 10, 13]}
creation_time       | 2020-11-02 15:44:42.134 05:30
last_modified_time  | 2020-11-02 15:44:42.134 05:30
  

Формат, в котором сохраняется LocalDate, создает проблемы для выполнения запросов на чтение с предложением where .
Любая помощь будет оценена.

Я использую Hibernate в качестве реализации JPA.

Комментарии:

1. Есть ли у вас какой-либо зарегистрированный конвертер для типа: @Type(type = «jsonb») ?

2. Я не определил какой-либо конвертер явно.

3. Есть ли у вашего проекта com.vladmihalcea:hibernate-types-52 зависимость?

4. да, это может как-то помочь? Я этого не проверял.

5. только что проверено, идентификатор артефакта — hibernate-types-43 (не 52).