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类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java中使用@Transactional会有哪些坑

    java中使用@Transactional会有哪些坑

    在Java中,@Transactional是一个常用的注解,用于声明方法应该在一个事务的上下文中执行,本文主要介绍了java中使用@Transactional会有哪些坑,感兴趣的可以了解一下
    2024-04-04
  • 浅谈利用Session防止表单重复提交

    浅谈利用Session防止表单重复提交

    这篇文章主要介绍了浅谈利用Session防止表单重复提交,简单介绍表单重复提交的情况,分析,以及解决方法代码示例,具有一定借鉴价值,需要的朋友可以了解下。
    2017-12-12
  • RabbitMQ排他性队列Exclusive Queue详解

    RabbitMQ排他性队列Exclusive Queue详解

    这篇文章主要介绍了RabbitMQ排他性队列Exclusive Queue详解,如果你想创建一个只有自己可见的队列,即不允许其它用户访问,RabbitMQ允许你将一个Queue声明成为排他性的Exclusive Queue,需要的朋友可以参考下
    2023-08-08
  • Java基础之super关键字浅析

    Java基础之super关键字浅析

    java中的super关键字是一个引用变量,用于引用直接父类对象,下面这篇文章主要给大家介绍了关于Java基础之super关键字的相关资料,需要的朋友可以参考下
    2022-04-04
  • Java中的WeakHashMap、LinkedHashMap、TreeMap与Set详解

    Java中的WeakHashMap、LinkedHashMap、TreeMap与Set详解

    这篇文章主要介绍了Java中的WeakHashMap、LinkedHashMap、TreeMap与Set详解,在JVM中,一个对象如果不再被使用就会被当做垃圾给回收掉,判断一个对象是否是垃圾,我们的WeakHashMap就是基于弱引用,需要的朋友可以参考下
    2023-09-09
  • 十种JAVA排序算法实例

    十种JAVA排序算法实例

    本文件讲了十种JAVA排序方法(冒泡(Bubble)排序——相邻交换 、选择排序——每次最小/大排在相应的位置 、插入排序——将下一个插入已排好的序列中 、壳(Shell)排序——缩小增量 、归并排序 、快速排序 、堆排序 、拓扑排序 、锦标赛排序 、基数排序)的使用,并提供了实例代码可参考
    2013-11-11
  • JVM:晚期(运行期)优化的深入理解

    JVM:晚期(运行期)优化的深入理解

    今天小编就为大家分享一篇关于JVM:晚期(运行期)优化的深入理解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Spring Boot应用上传文件时报错的原因及解决方案

    Spring Boot应用上传文件时报错的原因及解决方案

    这篇文章主要介绍了Spring Boot应用上传文件时报错的原因及解决方案,帮助大家更好的理解和学习使用spring boot框架,感兴趣的朋友可以了解下
    2021-02-02
  • 如何在pom文件中引入本地jar包并打包

    如何在pom文件中引入本地jar包并打包

    在项目中使用本地JAR文件的方法有很多,下面这篇文章主要给大家介绍了关于如何在pom文件中引入本地jar包并打包的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • 深入理解SpringMVC的参数绑定与数据响应机制

    深入理解SpringMVC的参数绑定与数据响应机制

    本文将深入探讨SpringMVC的参数绑定方式,包括基本类型、对象、集合等类型的绑定方式,以及如何处理参数校验和异常。同时,本文还将介绍SpringMVC的数据响应机制,包括如何返回JSON、XML等格式的数据,以及如何处理文件上传和下载。
    2023-06-06

最新评论