javers是否有可能忽略Java对象的顺序更改?

问题描述 投票:0回答:1

我有嵌套的Java对象。它的Json(例如)如下所示:第一个对象的Json:

{
  ClassId : 1,
  OfficeLocation: “UK”,
  “Employees”: [{
     ClassId: 2,
     FirstName: “Bob”,
     LastName: “Smith”
   },
   {
     ClassId: 3,
     FirstName: “Tim”,
     LastName: “Timothy”
   }]
}

第二个对象的json:

{
  ClassId : 1,
  OfficeLocation: “UK”,
  “Employees”: [{
     ClassId: 3,
     FirstName: “Tim”,
     LastName: “Timothy”
   },
   {
     ClassId: 2,
     FirstName: “Bob”,
     LastName: “Smith”
   }]
}

如果只是上述序列更改,我想忽略该更改。但是目前,javers正在为我提供Diff结果为valueAdded和ValueRemoved。我正在使用Javers 3.1.0。反正有这样做吗?

在我的实体类中,我向ClassId添加了@Id注释。但是仍然无法达到预期的效果。任何帮助,将不胜感激。

java json spring-boot javers
1个回答
0
投票

有两种解决方案。

第一个(推荐)-使用正确的收集类型。列表是有序集合,如果您不关心订购,请使用Set。

第二解决方案。如果无法将列表更改为集合,请使用ListCompareAlgorithm.AS_SET并将数据保留在列表中。

javersBuilder.withListCompareAlgorithm(ListCompareAlgorithm.AS_SET)

如果选择AS_SET,Javers会比较Sets之类的列表(列表中的所有元素在比较之前都会复制到Sets中。)>

© www.soinside.com 2019 - 2024. All rights reserved.