2014-09-08 4 views
0

Я могу загрузить некоторые объекты в ElasticSearch с исходным кодом Spring Data ElasticSearch. Дело в том, что мои классы моделей рассматривают многие свойства, и для некоторых из них я не хочу, чтобы мое представление (ввод) отражалось на ES.Пользовательский полевой сериализатор/десериализатор

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

Я бы хотел, например, для того, Кроме того, при чтении данных из ES я хочу написать собственный десериализатор (MyCustomDeserializer) для преобразования этой строки в мою собственную модель.

Есть ли способ, который я могу выполнить?

Благодаря

ответ

1

Spring Data ElasticSearch использует Джексон сериализовать поля, так что вы могли бы достичь собственной логики сериализации пути определения:

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

Или настроить отображение глобально в Джексоне ObjectMapper, заменив по умолчанию EntityMapper от поиска пружин-данных. Подробнее об этом here.