当前位置: 首页 > 知识库问答 >
问题:

带沙威的MongoDB原子性

东方震博
2023-03-14

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

共有1个答案

赵朝
2023-03-14

在MongoDB中没有事务。您所拥有的只是文档级的原子写入(请参见https://docs.mongodb.com/manual/core/write-operations-atomicity/)。JaVers没有在应用程序端实现任何类型的“多文档事务”。

如果需要类似SQL的事务,请选择JPA EntityManager integration的JaversSqlRepository(参见https://javers.org/documentation/spring-integration/#jpa-entity-manager-integration)。

 类似资料:
  • 主要内容:常用的原子操作命令维护原子性的推荐方法是保留所有相关信息,并将这些信息使用嵌入式文档的形式更新到文档中,这将确保单个文档的所有更新都是原子的。假设我们已经创建了一个名为 productDetails 的集合,并在其中插入了一个文档,如下所示: 在上面的文档中,我们将购买产品的客户的信息嵌入到 product_bought_by 字段中。当有新客户购买该产品时,我们首先会使用 product_available 字段

  • 我刚开始评估Javers,并下载了Javers主页上提供的组织结构演示。项目似乎无法更正标识更改。 > 将项目导入Intellij 作为Spring Boot项目的SqlApplication 该项目启动几个restendpoint来更新H2数据库,并用这些更改测试Javers API d)本地主机:8080/audit/person/0 []预期:显示对person/0进行的更新的输出 而且,P

  • 我试图为现有的遗留系统实现一个简单的diff系统。我正在使用Javers计算多个潜在对象状态之间的差异,并将它们保存在一个序列化版本中。我不想在我的对象上提交更改,只需要跟踪我的差异。

  • 本文向大家介绍php mongodb操作类 带几个简单的例子,包括了php mongodb操作类 带几个简单的例子的使用技巧和注意事项,需要的朋友参考一下 之前呐喊教程已经发过几篇类似的文章,大家可以参考一下。 核心代码:

  • 问题内容: 给定一个简化的表结构,如下所示: 我可以使用这样的子查询插入记录而不会导致竞争条件吗? 还是子查询不是原子的?我担心同时s获取相同的值,然后导致唯一约束冲突。 问题答案: 是的,这肯定可以创建竞争条件,因为尽管保证所有语句都是原子的,但这并不要求它们在查询执行的各个部分中对不变的数据集进行操作。 客户提交您的上述查询。只要引擎找到只持有与其他读取器兼容的锁的锁,则另一个客户端可以在执行

  • 英特尔64和IA-32处理器提供锁定信号,在某些关键内存操作期间自动断言该信号,以锁定系统总线或等效链路。当该输出信号被断言时,来自其他处理器或总线代理的总线控制请求被阻止。软件可以指定在锁语义后面加上指令的锁前缀的其他情况。 它来自《英特尔手册》第3卷 听起来,内存上的原子操作将直接在内存(RAM)上执行。我很困惑,因为我在分析汇编输出时看到“没有什么特别的”。基本上,为