Java在ElasticSearch中使用LocalDatetime类型
更新时间:2023年10月02日 07:59:37 投稿:wdc
最近在开发一个搜索功能的需求的时候,遇到了LocalDatetime类型不能保存到ElasticSearch中的问题,这篇文章主要介绍了Java在ElasticSearch中使用LocalDatetime类型
遇到的问题
最近在开发一个搜索功能的需求的时候,遇到了LocalDatetime类型不能保存到ElasticSearch中的问题,报错如下:
ElasticsearchStatusException[Elasticsearch exception [type=mapper_parsing_exception, reason=failed to parse field [createTime] of type [date] in document with id '3000'] ]; nested: ElasticsearchException[Elasticsearch exception [type=illegal_state_exception, reason=Can't get text on a START_OBJECT at 1:125]];
从网上查找尝试第一个办法:
将以下注解加到时间字段上,依然无效
@Field(type = FieldType.Date, index = FieldIndex.not_analyzed, store = true,
format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss.SSS")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd HH:mm:ss.SSS")
private LocalDateTime createTime;解决办法
在项目中添加以下依赖:
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>在字段上加上以下注解
@JsonDeserialize(using = LocalDateTimeDeserializer.class) @JsonSerialize(using = LocalDateTimeSerializer.class) @Field(type = FieldType.Date, store = true, format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss.SSS") @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss.SSS") private LocalDateTime createTime;
完美解决
到此这篇关于Java在ElasticSearch中使用LocalDatetime类型的文章就介绍到这了,更多相关Java在ElasticSearch中使用LocalDatetime类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
RabbitMQ排他性队列Exclusive Queue详解
这篇文章主要介绍了RabbitMQ排他性队列Exclusive Queue详解,如果你想创建一个只有自己可见的队列,即不允许其它用户访问,RabbitMQ允许你将一个Queue声明成为排他性的Exclusive Queue,需要的朋友可以参考下2023-08-08
Java中的WeakHashMap、LinkedHashMap、TreeMap与Set详解
这篇文章主要介绍了Java中的WeakHashMap、LinkedHashMap、TreeMap与Set详解,在JVM中,一个对象如果不再被使用就会被当做垃圾给回收掉,判断一个对象是否是垃圾,我们的WeakHashMap就是基于弱引用,需要的朋友可以参考下2023-09-09


最新评论