10

我正在使用带有 Java 和 Spring Data 的 NoSQL 数据库 MongoDB。我知道 MongoDB 只支持单个文档的事务。

我正在使用 Spring Transactions 来执行 MongoDB 事务。我正在使用事务模板。使用 TransactionTemplate 时我应该在 TransactionManager 中设置什么?

编辑

我有这样的事情:

<bean id=”txtTemplateBean” class=”org.springframework.transaction.support.TransactionTemplate”&gt;
<property name=”transactionManager” ref=”txnManagerBean”&gt;</property>

我需要定义 txnManagerBean 来指向 MongoDB 数据库的 DataSourceTransactionManager 之类的东西。

4

3 回答 3

6

MongoDB 4.0 现在支持多文档 ACID 事务!见https://www.mongodb.com/blog/post/mongodb-multi-document-acid-transactions-general-availability

于 2018-02-18T17:07:41.587 回答
5

MongoDB 确实支持使用两阶段提交的类似事务的语义。

还有另一个独立的工作是使用乐观锁定来支持 mongodb 中的事务。

于 2013-05-22T18:00:12.697 回答
1

MongoDB 不支持事务,它只支持原子操作。

http://docs.mongodb.org/manual/tutorial/model-data-for-atomic-operations/

这是使用乐观锁定为 MongoDB 实现事务的人的帖子: https ://stackoverflow.com/a/12757751/1173560

于 2013-03-20T10:35:19.297 回答