当前位置: 首页 > 知识库问答 >
问题:

Spring数据弹性搜索long to localdatetime转换错误

石思淼
2023-03-14

我有以下映射

@Document(indexName = "some-index")
@Data
public class ElasticDocument {

    @Id
    @Field(type = FieldType.Text)
    private String id;

    @Field(type = FieldType.Date, format = DateFormat.custom)
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "uuuu-MM-dd'T'HH:mm:ss.SSS")
    private LocalDateTime issuedTimestamp;

}

以下存储库

@Repository
public interface DocumentRepository extends ElasticsearchRepository<ElasticDocument, String> {

}

但是以下来自spring data elastic search 4.0.3.RELEASE的查询抛出了一个转换错误:

Page<ElasticDocument> elasticDocuments = documentRepository.findAll(PageRequest.of(0, 10));

[MappingElasticsearchConverter.java:290][Type LocalDateTime of property ElasticDocument.issuedTimestamp是一个临时Accessor类,但既没有定义日期类型的@Field注释,也没有用于读取的注册转换器!它无法从Elasticsearch中的复杂对象映射![未找到能够从类型[java.lang.Long]转换为类型[java.time.LocalDateTime]][org.springframework.core.convert.ConverterNotFoundException:未找到能够从类型[java.lang.Long]转换为类型[java.time.LocalDateTime]的转换器

我正在使用elasticsearch 7.9.1和Spring data elasticsearch 4.0.3。RELEASE和从我对Spring data elasticsearch 4. x的理解开始,我们不需要创建自定义转换,只要我在映射时添加了Field注释

共有1个答案

万选
2023-03-14

您需要在@Field注释中添加自定义格式的模式

@Field(type = FieldType.Date, format = DateFormat.custom, pattern = "uuuu-MM-dd'T'HH:mm:ss.SSS")
 类似资料:
  • 升级到Spring boot 2.3和Spring data elasticsearch 4.0.9后的问题。我有这样的文档: 这在spring data 3.0中与Jackson配合得很好,但升级到4.0后,Jackson不再可用,现在我收到了一个来自spring的实例化异常,无法实例化URL对象。 例外情况: 任何关于解决方案的想法都将受到赞赏。

  • 我用的是: 这些版本: Spring芯 4.3.7 Spring数据弹性搜索 3.0.9 发布 ES:“版本”:“6.3.0” 组织弹性搜索客户端:rest:5.5.0 和传输 5.5.0 Spring数据共享 1.12.8.发布 创建IAuditElasticRepository.java空接口: 创建了ch-elastic.xml配置: 在我的Manager类中自动安装它: 有一个名为ch-d

  • 我有一个设计糟糕的文档结构: 我想从上面的文档中检索标题、Fach和代码。 多谢了。

  • 我正在使用spring数据elasticsearch来执行CRUD操作。 我有一个扩展Elasticsearch chRepository的自定义存储库。 最终,ElasticsearchRepository扩展了CrudRepository,这意味着可以更新现有记录。 问题是,你是如何做到这一点的?我还没有找到一个名为“update()”的方法 我认为做以下事情会有用(代码从https://gi

  • 我需要运行以下查询: 但我不能用spring data elasticsearch轻松运行这个。 有什么办法吗 spring data elasticsearch是否很好地支持所有elasticsearch查询DSL

  • 我正在尝试在多个集群(而不是节点)中插入记录。我正在使用spring-data-elastic search(版本2.0.4.version)。我尝试使用不同bean名称在配置中创建2个elasticsearchoperation实例。我正在尝试使用带有索引(IndexQuery IndexQuery)方法的对象进行插入。但当我尝试插入时,我无法保持字段的映射(非分析字段类型)。可以有人请帮助我如