Правильный способ использования @Version - PullRequest
1 голос
/ 16 октября 2019

Может кто-нибудь сказать, как именно эта @Version работает для блокировки? Поскольку я не вижу, чтобы поле версии было сохранено в Couchbase, но когда я его получаю, это поле заполняется некоторым случайным значением.

Должен ли я вручную устанавливать это значение при сохранении? Например, у меня есть конечная точка POST и PUT. если я не установлю версию с существующим номером версии, я получу ошибку DocumentAlready существующие. Но для POST это нормально - сохранение без установки версии (я думаю, оно автоматически сгенерирует новое случайное значение для новой записи).

1 Ответ

1 голос
/ 23 октября 2019

В couchbase с каждым документом связаны некоторые метаданные, например:

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

Эти данные обычно прозрачны для вас, если вы используете Couchbase с Spring Data, но вы можете вставить их в полеЕсли вам нужно. Именно так и происходит с аннотацией @Id. Вам не нужно беспокоиться о @Version, если вы не хотите использовать некоторую оптимистическую / пессимистическую блокировку.

...