我有一个像这样的对象:
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
快照中的值更改。我应该将其注册为值吗?
答案 0 :(得分:1)
将Phone Phone映射为ValueObject或让JaVers应用默认映射,这也是ValueObject对象。 ValueObject始终按属性进行比较,而不是通过引用进行比较。你是什么意思似乎没有做到这一点?