使用Spring Couchbase连接器时,可以通过在班级中轻松获得乐观锁定的版本:
public class MyClass {
@Version
private String version;
.... rest of class omitted ....
}
我现在正试图找到一种类似的方式来获取并能够修改元数据以使其过期。我找不到该怎么做。
有人可以举个例子吗?谢谢!
答案 0 :(得分:0)
使用spring数据ouchbase库(直到最新的3.0.8.RELEASE版本),可以通过在类上使用@Document(expiry = 10)
或@Document(expiryExpression = "${valid.document.expiry}")
来定义文档到期时间。还有一个可选的布尔属性touchOnRead
,需要将其与@Document
添加在一起,只要直接读取文档,该属性就会重置到期计时器。请注意,当前无法使用此库直接读取/修改现有文档的有效期。一种方法是访问Couchbase自己的Java SDK(com.couchbase.client.java)公开的以下API
getAndTouch
-允许您在修改文档到期时间的同时检索文档
touch
-允许您修改文档的到期时间,而无需访问文档
您可以在此处找到以上两个方法的签名:http://docs.couchbase.com/sdk-api/couchbase-java-client-2.2.4/com/couchbase/client/java/Bucket.html
可以通过如下方式通过spring数据沙发库访问上述两个API
couchbaseTemplate.getCouchbaseBucket().touch(...)
couchbaseTemplate.getCouchbaseBucket().getAndTouch(...)
spring库的getCouchbaseBucket()
方法返回对com.couchbase.client.java.Bucket
的引用,通过该引用可以使用touch
和getAndTouch
方法。