6

注釈を使用して、モデル オブジェクトにフィールドを@Id追加できidます。クエリを実行すると、結果のモデル オブジェクトには_id@Id注釈付きフィールドに elasticsearch の値が含まれます。

ただし、_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それは楽観的ロックに使用されるため、私は特に心配しています。

if_idがサポートされていて_version、他のメタデータ フィールドも何らかの形でサポートされているように思えます。

spring-data-elasticsearch のドキュメントを読んだところ、何も見つかりません。分かる方、アドバイスお願いします。

spring-data-elasticsearch ではすべての elasticsearch ドキュメント メタデータ フィールドがサポートされていますか? もしそうなら、どのように?

さらに、_versionどうにかして取得できる場合、spring-data-elasticsearch を使用するときに楽観的ロックに使用するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

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(value=RUNTIME)

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

バージョン エンティティにオプティミスティック ロックを実装するためのバージョン フィールドとして使用されるプロパティの境界を示します。

以降: 1.5

著者: Patryk Wasik、Oliver Gierke

これを使用したコードへのリンクは次のとおりです。

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

これがあなたが望むものかどうかはわかりませんが、それは私ができる限り近いものです. 楽観的ロック用です。

于 2015-02-21T21:16:31.420 に答える