使用Javers实现MongoDB原子性

kqhtkvqz  于 2022-12-22  发布在  Go
关注(0)|答案(2)|浏览(149)

我看到Javers mongo存储库将数据存储在两个不同的集合中,假设我正在使用Javers进行审计,并且我正在将我的域对象写入另一个集合,我想知道如何在这些持久化操作中保持原子性。Javers是否执行某种两阶段提交来保持两个内部集合之间的完整性?它是否为客户端应用程序提供钩子。的持久性操作是否与审核日志同步?

u7up0aaq

u7up0aaq1#

当前版本的Javers支持MongoDB事务:
If you use Spring Boot, then after declaring the MongoTransactionManager as described here: https://www.baeldung.com/spring-data-mongodb-transactions#mongodb-configuration Javers will pick it up automatically.
If you are not using Spring Boot, then you can configure Javers as described here: https://javers.org/documentation/spring-integration/#mongo-transactions.
请注意,如果您配置了Javes将数据写入单独的数据库,那么您将无法轻松地配置事务管理。

gudnpqoy

gudnpqoy2#

在MongoDB中没有事务。你所拥有的只是文档级的原子写(参见https://docs.mongodb.com/manual/core/write-operations-atomicity/)。JaVers没有在应用程序端实现任何类型的“多文档事务”。
如果需要类似SQL的事务,请选择集成了JPA实体管理器的JaversSqlRepository(请参见https://javers.org/documentation/spring-integration/#jpa-entity-manager-integration)。

相关问题