有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Javers将值对象存储为单个文档,导致“跳过”和“限制”无法按预期工作

我有一个包含一个值对象的实体。第一次保存这个实体时,我可以看到Javers在jv\u快照中存储了两条初始记录。一个用于和一个用于地址。我正在使用Javers3.8.0和Spring Boot与Mongo存储库集成

当我们存储初始记录或后续更新时,值对象是否可能嵌套在主实体中,而不是创建单个记录?因为当我使用limitskip进行分页时,它被计算为两个而不是一个记录

public class Person {
  private Long id;
  private String name;
  private Address address;

  //getter setter ommited
}

// on another file
public class Address {
  private String city
  //getter setter ommited
}

这是我用来检索更改的查询,这里我希望有5个不同的快照,如果我在同一个人实体上做了5个更改,但是由于我上面描述的原因,我得到的快照少于5个

javers.findChanges(
    QueryBuilder.byInstanceId(documentId, Person.class)
                .withChildValueObjects()
                .limit(5)
                .build())

共 (1) 个答案

  1. # 1 楼答案

    在JaVers中,每个对象(值对象或实体)总是使用自己的快照进行持久化。没有嵌套的快照。如果要查询具有ChildValueObject的实体,则这些值对象使用总体快照限制