使用@Id
注释我可以向模型对象添加id
字段,当我执行查询时,生成的模型对象将包含_id
中{的弹性搜索值@Id
{1}}带注释的字段。
但是,我还没有弄清楚如何获取其他文档元数据,例如_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时如何将其用于乐观锁定?
感谢。
答案 0 :(得分:1)
我可以说,你要求的东西不存在。然而,没有真正的能力来证明这一点。我确实找到了Spring-data-elasticsearch
的注释列表:
@id和@version都不在该列表中。
我可以找到其他具有@version
注释但却不是Spring-data-elasticsearch
的内容。
如果你只是在谈论Spring-Data
我会指出你:
org.springframework.data.annotation
注释类型版本
@Documented @Retention(value = RUNTIME)
@Target(value = {FIELD,METHOD,ANNOTATION_TYPE})public @interface
Version划定要用作版本字段的属性,以对实体实施乐观锁定。
自:1.5
作者:Patryk Wasik,Oliver Gierke
以下是使用它的一些代码的链接:
http://hantsy.blogspot.com/2013/10/spring-data-new-perspective-of-data.html
不确定这是不是你想要的,但是我能尽可能接近。这是为了乐观锁定。