跟踪嵌套对象时,Javers没有提供适当的审计更改

时间:2020-02-21 11:29:41

标签: javers

我使用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

如何更好地处理此问题?您能帮我吗

0 个答案:

没有答案
相关问题