如何使Javers按字段值而不是ID /对象引用进行比较

时间:2017-12-05 11:18:22

标签: javers

我有一个像这样的对象:

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类定义为ValueObject,但它似乎没有完成这项工作,我仍然将其作为参考更改而不是生成的Commit快照中的值更改。我应该将其注册为值吗?

1 个答案:

答案 0 :(得分:1)

将Phone Phone映射为ValueObject或让JaVers应用默认映射,这也是ValueObject对象。 ValueObject始终按属性进行比较,而不是通过引用进行比较。你是什​​么意思似乎没有做到这一点?