Javers中关联实体变更仅显示ID而非属性的问题求助
Javers中关联实体变更仅显示ID而非属性的问题求助
我使用的是Javers 7.10.0,目前定义了一个Javers Bean,我的领域模型类都继承自一个名为Entity的抽象类,配置代码如下:
return JaversBuilder.javers() .registerEntity( EntityDefinitionBuilder.entityDefinition(Entity.class) .withIdPropertyName("id") .build()) .registerJaversRepository(mongoRepository) .build();
我有两个类Foo和Product,都继承自Entity,代码结构如下:
public class Foo extends Entity { private String someProperty; private Product product; // ... 构造方法、getter/setter等省略 } public class Product extends Entity { private String code; // ... 构造方法、getter/setter等省略 }
我会对包含已填充Product对象(带有特定code值)的Foo实体调用javers.commit。现在的需求是:当我更新Foo实体关联的product.code时,希望能看到Product属性的详细变更,比如明确显示product.code从XXX变为YYY。
但实际情况是,当我用javers.findChanges(queryBuilder.withChildValueObjects().build())查询Foo实体的变更时,只能看到product.id的变更,返回的变更信息类似这样:
... "changeType" : "PROPERTY_VALUE_CHANGED", "propertyName" : "product", "left" : { "typeName" : " ... model.common.Product", "cdoId" : 1 }, "right" : { "typeName" : "... .model.common.Product", "cdoId" : 3 } ...
如果我把Product声明为ValueObject的话,就能得到预期的详细变更,但这样一来我就没办法独立审计Product本身、也不能单独查询它的变更记录了。
我感觉自己可能漏掉了某些配置或者用法,有没有大佬能给点建议?
备注:内容来源于stack exchange,提问作者Munegux
相关产品推荐
相关产品推荐

