本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
適用於 Java 的 SDK 第 1 版和第 2 版之間的樂觀鎖定差異
V1 和 V2 都實作樂觀鎖定搭配屬性註釋,在您的 Bean 類別上標記一個屬性來存放版本號碼。
| V1 | V2 | |
|---|---|---|
| Bean 類別註釋 | @DynamoDBVersionAttribute |
@DynamoDbVersionAttribute (請注意,V2 使用小寫 "b") |
| 初始儲存 | 版本編號屬性設定為 1。 |
使用 設定的版本屬性的起始值 |
| 更新 | 如果條件式檢查確認要更新的物件版本編號符合資料庫中的編號,則版本編號屬性會遞增 1。 |
如果條件式檢查驗證要更新的物件版本編號符合資料庫中的編號,則版本編號屬性會遞增。 使用 設定 |
| Delete | DynamoDBMapper 新增條件式檢查,確認要刪除之物件的版本編號符合資料庫中的版本編號。 |
V2 不會自動新增刪除操作的條件。如果您想要控制刪除行為,則必須手動新增條件表達式。 在下列範例中,
|
| 具有條件檢查的交易寫入 | 您無法在 addConditionCheck方法@DynamoDBVersionAttribute中使用以 標註的 Bean 類別。 |
您可以在transactWriteItems請求的addConditionCheck建置器方法中使用具有 @DynamoDbVersionAttribute註釋的 Bean 類別。 |
| 停用 | 透過將 DynamoDBMapperConfig.SaveBehavior列舉值從 變更為 UPDATE 來停用樂觀鎖定CLOBBER。 |
請勿使用 |