【问题标题】:Spring-data-elasticsearch meta-data annotations for _version, _id etc_version、_id 等的 Spring-data-elasticsearch 元数据注释
【发布时间】:2014-12-18 04:07:17
【问题描述】:

使用@Id 注释,我可以将id 字段添加到我的模型对象,当我执行查询时,生成的模型对象将在@Id 注释字段中包含elasticsearch _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 和其他元数据字段也应该以某种方式得到支持。

我刚刚阅读了 spring-data-elasticsearch 文档,但找不到任何东西。如果有人知道,请指教。

spring-data-elasticsearch 是否支持所有的 elasticsearch 文档元数据字段?如果有,怎么做?

此外,如果我能以某种方式获得_version,那么在使用 spring-data-elasticsearch 时如何使用它进行乐观锁定?

谢谢。

【问题讨论】:

    标签: java elasticsearch annotations 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(value=RUNTIME)

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

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

    自:1.5

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2016-09-13
      • 1970-01-01
      • 2016-05-12
      • 2015-06-12
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 2019-11-09
      相关资源
      最近更新 更多