You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 18:27:56