我使用Javers跟踪了嵌套对象,并将对象存储在javers表中,如下所示
{
"userInfo": "test1@gmail.com",
"site": {
"valueObject": "test.dto.AuditDeviceDto",
"ownerId": {
"entity": "test.db.Site",
"cdoId": 1
},
"fragment": "site"
},
"siteCode": "mysite",
"id": 1
}
嵌套对象
{
"deviceClass": "bus",
"deviceCode": "bus1",
"driverInstance": {
"valueObject": "test.dto.ModuleInstanceDto",
"ownerId": {
"entity": "test.db.Site",
"cdoId": 1
},
"fragment": "site/nodes/0/devices/1/driverInstance"
},
"powerPorts": [
{
"valueObject": "test.dto.PowerPortDto",
"ownerId": {
"entity": "test.db.Site",
"cdoId": 1
},
"fragment": "site/nodes/0/devices/1/powerPorts/0"
},
{
"valueObject": "test.dto.PowerPortDto",
"ownerId": {
"entity": "test.db.Site",
"cdoId": 1
},
"fragment": "site/nodes/0/devices/1/powerPorts/1"
},
{
"valueObject": "test.dto.PowerPortDto",
"ownerId": {
"entity": "test.db.Site",
"cdoId": 1
},
"fragment": "site/nodes/0/devices/1/powerPorts/2"
}
]
}
使用以下查询获取审核更改:
javers.findChanges(QueryBuilder.byClass(Site::class.java)
.withChildValueObjects()
.withCommitProperty("siteCode", site.siteCode)
.from(from).to(to)
.build())
通过将嵌套对象添加到设备列表对象,然后将新对象添加到同一列表来跟踪初始记录,但是Javers正在与以前添加的嵌套对象进行比较,当我使用上述查询进行查询时给出错误的结果。
它应作为新添加的更改单独显示,并且不应与其他嵌套对象进行比较,否则,不匹配的字段将显示removed
如何更好地处理此问题?您能帮我吗