Java Spring数据cassandra的事务管理

Java Spring数据cassandra的事务管理,java,spring,spring-data-cassandra,Java,Spring,Spring Data Cassandra,我使用Spring和Cassandra作为底层数据库。曾提及spring伞形项目“spring data cassandra”。 与hibernate不同,无法了解此处如何管理事务。 如果你们中的一些人已经合并了交易管理器,请分享交易管理器的详细信息。Cassandra不支持传统(ACID)意义上的交易。在一些构造中,您可以在特殊情况下实现事务原子性,如原子批处理(请参阅)或轻量级事务(请参阅),但没有任何东西适合于全面的事务管理 这主要是Cassandra体系结构的结果,该体系结构侧重于可伸缩

我使用Spring和Cassandra作为底层数据库。曾提及spring伞形项目“spring data cassandra”。 与hibernate不同,无法了解此处如何管理事务。
如果你们中的一些人已经合并了交易管理器,请分享交易管理器的详细信息。

Cassandra不支持传统(ACID)意义上的交易。在一些构造中,您可以在特殊情况下实现事务原子性,如原子批处理(请参阅)或轻量级事务(请参阅),但没有任何东西适合于全面的事务管理


这主要是Cassandra体系结构的结果,该体系结构侧重于可伸缩性和容错性,这在传统关系数据库中是不可能实现的。

Cassandra批处理目前默认为原子处理。

因此,它可能是spring数据中@Transactional的最佳等价物 (虽然,全酸不适合这个世界,但它不是这样玩的)

应该这样做(您可以根据自己的意愿更改ConsistenceLevel和RetryPolicy的值—这就是问题所在!):


我知道Cassandra不支持事务原子性。我正在尝试找出是否有某种框架可以为我执行任务。Kundera()似乎可以完成这项工作,但我正在寻找Spring data Cassandra project()的一些特定功能。对不起,@Anish,SDC中没有类似的功能。请随意在@Mathew Adams处创建一个问题请求它:我在JIRA中记录了相同的问题,但他们将其标记为无效。他们错误地理解为Cassandra问题,而不是通过Spring在Cassandra之上创建一个包装器来整合的问题。你可以找到我的错误记录
Insert insert1 = CassandraTemplate.createInsertQuery("table1", value1, new WriteOptions(ConsistencyLevel.LOCAL_ONE, RetryPolicy.DEFAULT), cassandraConverter);

Insert insert2 = CassandraTemplate.createInsertQuery("table2", value2, new WriteOptions(ConsistencyLevel.LOCAL_ONE, RetryPolicy.DEFAULT), cassandraConverter);

Batch batch = QueryBuilder.batch(insert1,insert2);

//cassandraOperations - object of CassandraTemplate , injected by Spring
cassandraOperations.execute(batch);