6

Использование аннотации @Id Я могу добавить поле id к моему объекту модели, и когда я выполняю запрос, результирующий объект модели будет содержать значение elasticsearch _id в @Id аннотированное поле.Аннотации метаданных Spring-data-elasticsearch для _version, _id и т. Д.

Однако мне еще предстоит выяснить, как получить другие метаданные документа, такие как _version. Я попытался добавить поле version в свою модель и аннотировать его аннотацией @Version, но ничего не произошло, и поле осталось null.

{ 
    "_index" : "twitter", 
    "_type" : "tweet", 
    "_id" : "1", 
    "_version" : 1, 
    "found": true, 
    "_source" : { 
     "user" : "kimchy", 
     "postDate" : "2009-11-15T14:12:12", 
     "message" : "trying out Elasticsearch" 
    } 
} 

Я имею в виду таких областях, как _index, _type, _id, _version и т.д ...

Я особенно обеспокоен _version потому, что используется для оптимистической блокировки.

Мне кажется, что если _id поддерживается, то _version и другие поля метаданных должны поддерживаться как-то тоже.

Я только что прочитал документы с источниками данных elasticearch, и я ничего не могу найти. Если кто-то знает, пожалуйста, сообщите.

Все ли поля метаданных документа elasticsearch поддерживаются в spring-data-elasticsearch? Если да, то как?

Кроме того, если я могу получить _version как-то, то как я могу использовать его для оптимизации блокировки при использовании spring-data-elasticsearch?

Спасибо.

ответ

1

Рядом, как я могу судить, о том, чего вы просите, не существует. Не имея реальной возможности доказать это. Я нашел список аннотаций для Spring-data-elasticsearch:

http://docs.spring.io/spring-data/elasticsearch/docs/current/api/org/springframework/data/elasticsearch/annotations/package-tree.html

Ни @id, ни @version находятся в этом списке.

Я могу найти другие вещи, содержащие аннотацию @version, но они не являются Spring-data-elasticsearch.

Если вы только о Spring-Data я укажу вам на это:

http://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/annotation/Version.html

org.springframework.data.annotation

аннотаций Тип версии

@Documented @Retention (значение = RUNTIME)

@Target (value = {FIELD, METHOD, ANNOTATION_TYPE}) public @interface

Версия Демаркетирует свойство, которое будет использоваться как поле версии для реализации оптимистической блокировки на сущности.

С: 1.5

Автор: Patryk Wasik, Оливер Гирке

Вот ссылка на какой-то код, используя его:

http://hantsy.blogspot.com/2013/10/spring-data-new-perspective-of-data.html

Не уверен, если это то, что вы хотите, но это так близко, как я может прийти. Это для оптимистической блокировки.