我想在特定文档的每次保存操作中设置不同的TTL值。就像我有一个包含雇员和指定字段的文档。
对于每个新雇员,应根据指定值设置TTL。就像员工是解决方案架构师一样,则文档有效期应设置为30天。如果指定为“高级建筑师”,则应将有效期设置为20天。
我知道如何通过spring框架设置到期时间,但是如何动态设置它? PFB:
@Document(expiry = Constants.COUCHBASE_RESOURCE_TTL)
public class EmployeeResource {
}
答案 0 :(得分:0)
除了默认设置外,您还可以使用http://docs.couchbase.com/sdk-api/couchbase-java-client-2.2.4/com/couchbase/client/java/Bucket.html#touch-java.lang.String-int-方法在运行时扩展/更新文档的TTL。
答案 1 :(得分:0)
保存文档并设置变量定义的TTL后,您可以touch
保存文档。
假设您有一个名为getTTLByEmployee
的方法,该方法将按Employee类型返回TTL(int
)。您可以执行以下操作:
Employee savedEmployee = yourRepository.save(employee);
yourRepository.getCouchbaseOperations().getCouchbaseBucket()
.touch(savedEmployee.getId(), getTTLByEmployee(employee.getEmployeeType()));