自定义字段串行器/解串器

时间:2014-09-08 15:36:38

标签: spring-data spring-data-elasticsearch

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

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

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

有什么方法可以实现吗?

由于

1 个答案:

答案 0 :(得分:1)

Spring Data ElasticSearch使用jackson序列化字段,因此您可以通过定义以下内容来实现自定义序列化逻辑:

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

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

相关问题