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 BootSpring Boot之使用 Spring Data Elasticsearch 整合elasticsearch