Spring Data ElasticSearch JSON日期格式导致NullpointException

Posted

技术标签:

【中文标题】Spring Data ElasticSearch JSON日期格式导致NullpointException【英文标题】:Spring Data ElasticSearch JSON date format cause NullpointException 【发布时间】:2022-01-06 23:30:09 【问题描述】:

我正在使用 Spring Data ElasticSearch v4.2.x,我的数据以 JSON 字符串形式返回。

问题出在这里,我尝试将 JSON 字符串解析为 Object,然后我得到“java.lang.NullPointerException”。我有一个带有这些注释的 Date 字段,我确定这个字段导致了这个问题:

    @Field(type = FieldType.Keyword, name = "created_at", format = DateFormat.basic_date_time, pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createdAt;

【问题讨论】:

Spring Data ElasticSearch v4.0.x不会有问题 【参考方案1】:

您将类型定义为FieldType.Keyword,您需要FieldType.Date

@JsonFormat 注释被 Spring Data Elasticsearch 忽略。

请停止使用旧的 java.util.Date 类并改用 java.time 中的类,它们现在从 Java 8 开始可用。

【讨论】:

我发现是我的序列化配置问题,但是你的建议还是帮了我很大的忙!

以上是关于Spring Data ElasticSearch JSON日期格式导致NullpointException的主要内容,如果未能解决你的问题,请参考以下文章

springboot 集成 spring-data-elasticsearch

Spring Data Elasticsearch

Spring BootSpring Boot之使用 Spring Data Elasticsearch 整合elasticsearch

使用 Spring data mongo 和 Spring data elasticsearch 时如何建模?

Spring Data Elasticsearch

Spring Data ElasticSearch 使用