Ani*_*ish 2 java spring spring-data-cassandra
我使用 Spring 和 Cassandra 作为底层数据库。曾提到过 spring 伞项目 'spring data cassandra'。与休眠不同,无法找出此处如何管理事务。如果你们中的一些人已经合并了交易管理器,请分享交易管理器的详细信息。
Cassandra 不支持传统(ACID)意义上的事务。有一些结构可以在特殊情况下实现诸如事务原子性之类的东西,例如原子批处理(参见http://www.datastax.com/dev/blog/atomic-batches-in-cassandra-1-2)或轻量级交易(请参阅http://www.datastax.com/dev/blog/lightweight-transactions-in-cassandra-2-0),但没有什么适合全面的交易管理。
这主要是 Cassandra 架构的结果,它专注于传统关系数据库无法实现的可扩展性和容错水平。
Cassandra 批处理目前默认是原子的。 http://docs.datastax.com/en/cql/3.0/cql/cql_reference/batch_r.html
所以它可能是 Spring Data 中 @Transactional 最好的等价物(尽管,完整的 ACID 不适合这个世界,它只是不是这样的)
应该播放类似的内容(您可以根据需要更改 ConsistencyLevel 和 RetryPolicy 的值 - 就是这样!):
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5797 次 |
| 最近记录: |