如何使用 Spring-Data 在 Cassandra 中启用乐观锁定(版本控制)?

问题描述 投票:0回答:2

答案是Cassandra乐观锁定,但问题描述了Cassandra中存在乐观锁定(版本控制)。

我的问题是如何在 Spring Boot 中做到这一点?

java cassandra spring-data-cassandra
2个回答
1
投票

Cassandra Spring Data 中的轻量级事务通过 InsertOptions 类或 UpdateOptions 支持 - 您通过相应的构建器创建它的实例,例如 InsertOptions.InsertOptionsBuilder,然后将其实例传递给相应的操作

 insert
update

操作结果是从

insert
/
update
通过调用.wasApplied函数返回的WriteResult类实例获得的。

更详细的信息可以在文档中找到。


0
投票

乐观锁定:

@Version 注释提供了与 Cassandra 上下文中的 JPA 类似的语法,并确保更新仅应用于具有匹配版本的行。乐观锁定利用 Cassandra 的轻量级事务来有条件地插入、更新和删除行。因此,INSERT 语句是在 IF NOT EXISTS 条件下执行的。对于更新和删除,版本属性的实际值会添加到 UPDATE 条件中,这样,如果其他操作同时更改了行,则修改不会产生任何影响。在这种情况下,会抛出 OptimisticLockingFailureException。

文档参考

© www.soinside.com 2019 - 2024. All rights reserved.