如何让 Javers 按字段值而不是 ID/object 参考进行比较

How to make Javers compare by field values rather than ID/object reference

我有一个像这样的对象:

class Person {
    Phone phone;
}

class Phone {
    String number;
    String prefix;
    Phone(String n, String p) {
        number = n;
        prefix = p;
    }
}

Now consider this code:

Person p = new Person();
p.phone = new Phone("444444", "01");
javers.commit(p);
p.phone = new Phone("555555", "01");
javers.commit(p);

在这种情况下,可以看到 Phone 的引用已更改。虽然这是很好的信息,但我并不真正关心它。我只想知道 number 字段的值何时发生变化,这正是我正在跟踪的内容。

我将如何实现?我尝试将 Phone class 定义为 ValueObject,但它似乎没有完成工作,我仍然将其作为参考更改而不是结果 Commit 快照中的值更改。我应该将其注册为值吗?

Map Phone as ValueObject 或让 JaVers 应用默认映射,这也是 ValueObject 对象。 ValueObject 总是通过 属性 与 属性 进行比较,从不通过引用进行比较。它似乎没有完成任务是什么意思?