当一个" NewObject"时,呈现对象之间的差异可能是困难的。提出了变化

时间:2017-07-17 18:51:47

标签: javers

我有以下内容:

    class ObjectRow
      { 
      String updated,
      String phone,
      String name, 
      String city,
      String state
      List<String> comments
      // setters/getters
      }

      class Report
      {
       String id,
       List<ObjectRow> rows
       // setters/getters
      }

      Report oldReport = getLastGeneratedReport(id);
      Report newReport = buildReport();
      String globalId;
      Diff diff = javers.compare(oldReport, newReport);
      List<ObjectRow> newReportRow = newReport.getRows();
      for (Change c : diff.getChanges())
      {
      globalId = c.getAffectedGlobalId().value;
      String rowResult = globalId.substring(globalId.lastIndexOf('/') + 1);
      if (!rowResult.equals(""))
         {
         int changedRow = Integer.parseInt(rowResult);
            newReportRow.get(changedRow).setUpdated(BooleanUtilsWrapper.toStringYesNo(true));
         }
      }

我遍历各个更改并在Excel电子表格专栏中注明差异,标题为&#34;已更新&#34;通过放置&#34;是&#34;在那一栏。

例如,

    "Updated", "PhoneNumber", "Name", "City", "State"

某些行的名称会重复,因为一行可能有多个同名的PhoneNumbers(home,cell,work)。

    "Yes", 123-4567, Sally, Austin, TX
    "Yes", 123-1111, Sally, Austin, TX
    "", 234-4444, Dennis, Dallas, TX

只要两个集合(行)中的行数相等,这样就可以正常工作。

但是,如果我向新报告添加新行。我很难使用Change.globalId输出,其中索引帮助我能够记录&#34;是&#34;在该行的“已更新”列中。

Javers最终注意到所有行都发生了变化,实际上它只是添加了一行,我相信它被认为是&#34; NewObject&#34;变化

我想更新&#34;更新&#34;列,并比较正确的行与旧报告中的20行和新报告中的21行以及关闭。

有没有办法防止这种情况发生?或者你遇到类似的东西并提出建议吗?

感谢您的帮助或任何建议。

0 个答案:

没有答案