我有嵌套的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注释。但是仍然无法达到预期的效果。任何帮助,将不胜感激。
有两种解决方案。
第一个(推荐)-使用正确的收集类型。列表是有序集合,如果您不关心订购,请使用Set。
第二解决方案。如果无法将列表更改为集合,请使用ListCompareAlgorithm.AS_SET
并将数据保留在列表中。
javersBuilder.withListCompareAlgorithm(ListCompareAlgorithm.AS_SET)
如果选择AS_SET
,Javers会比较Sets之类的列表(列表中的所有元素在比较之前都会复制到Sets中。)>