有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

json使用javers是否可以忽略Java对象的序列更改?

我有嵌套的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给了我不同的结果,即增值和增值。我使用的是Javers3.1.0。有什么办法可以这样做吗

在我的实体类中,我将@Id注释添加到ClassId中。但仍未能达到预期效果。任何帮助都将不胜感激


共 (1) 个答案

  1. # 1 楼答案

    有两种解决办法

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

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

    javersBuilder.withListCompareAlgorithm(ListCompareAlgorithm.AS_SET)
    

    如果选择了AS_SET,Javers将比较类似集合的列表(列表中的所有元素在比较之前都复制到集合)