@Version 的正确使用方法

Correct way to use @Version

谁能告诉我这个@Version 究竟是如何用于锁定的?因为我没有看到版本字段保存在 Couchbase 中,但是当我检索它时,这个字段填充了一些随机值。

保存时需要手动设置这个值吗?例如,我有一个 POST 和 PUT 端点。如果我不使用现有版本号设置版本,我将收到 DocumentAlready exist 错误。但是对于POST,不设置版本就可以保存(我猜它会自动为新记录生成新的随机值)。

在 couchbase 中,每个文档都有一些与之关联的元数据,例如:

"cas": 1571854188210290688,
"expiration": 0,
"flags": 0,
"id": "path::3c23b8a1-55ca-4cd9-a3cc-d6641abf1adc",
"type": "json"

如果您将 Couchbase 与 Spring 数据一起使用,此数据通常对您是透明的,但如果需要,您可以将其注入字段中。这正是 @Id 注释所发生的情况。你不需要担心 @Version 除非你想做一些 optmistic/pessimistic 锁定。