6

使用@Id注释我可以id向我的模型对象添加一个字段,当我执行查询时,生成的模型对象将_id@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支持 then_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}) 公共@interface

版本 划定一个属性以用作版本字段以实现对实体的乐观锁定。

自:1.5

作者:帕特里克·瓦西克、奥利弗·吉尔克

这是一些使用它的代码的链接:

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

不确定这是否是您想要的,但这是我能做到的。它用于乐观锁定。

于 2015-02-21T21:16:31.420 回答