【问题标题】:Custom field serializer / deserializer自定义字段序列化器/反序列化器
【发布时间】:2014-09-08 15:36:37
【问题描述】:

我可以使用开箱即用的 Spring Data ElasticSearch 将一些实体加载到 ElasticSearch 中。问题是我的模型类考虑了许多属性,其中一些我不希望我的表示(打字)反映到 ES 中。

@Field(serializer = MyCustomSerializer, deserializer = MyCustomDeserializer)
private SomeClass someObject;

例如,我希望 SomeClass 被序列化为字符串,因此我可以这样查询它。另外,在从 ES 读取数据时,我希望能够编写一个自定义的反序列化器(MyCustomDeserializer)来将这个 String 转换成我自己的模型。

有什么办法可以做到吗?

谢谢

【问题讨论】:

    标签: spring-data spring-data-elasticsearch


    【解决方案1】:

    Spring Data ElasticSearch 使用 jackson 对字段进行序列化,因此您可以通过定义实现自定义序列化逻辑:

    @JsonSerialize(using = MyCustomSerializer.class)
    @JsonDeserialize(using = MyCustomDeserializer.class)
    private SomeClass someObject;
    

    或者在 jackson ObjectMapper 中全局配置您的映射,替换 spring-data-elasticsearch 中的默认 EntityMapper。更多关于 here.

    【讨论】:

      猜你喜欢
      • 2016-02-12
      • 1970-01-01
      • 2022-07-21
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-24
      • 1970-01-01
      相关资源
      最近更新 更多