Spring Data Elastic Search 4.0.3-日期列表字段

问题描述

让我说我有一个生日列表

@Field(type = FieldType.nested,includeInParent = true,format = DateFormat.date)
private List<LocalDate> birthdates = new ArrayList<>();

使用spring数据映射此错误而又不会出现此错误的正确方法是什么。 找不到能将[java.lang.Long]类型转换为[java.time.LocalDate]类型的转换器

我真的需要创建一个自定义转换器吗?或包装对象? 我认为这是开箱即用的支持

谢谢。

解决方法

注释此属性的正确方法应该是

@Field(type = FieldType.Date,format = DateFormat.date)
private List<LocalDate> birthdates = new ArrayList<>();

这会将映射项写为date类型,格式为date,并且可以存储和搜索数组。

坏消息是,当前版本的Spring Data Elasticsearch无法正确处理此问题。

好消息是,我刚刚为此实现了修复,它将包含在版本4.0.4.RELEASE和4.1.0.RC1中;两者都计划明天发布。

编辑:两个版本现已发布