我试图通过解释容器更改(v1.6.0)将两个实体列表上的差异转换为更易于阅读的格式。
如果我有一个实体列表(listBefore):
entity1
entity2
entity3
entity4
我重新排序列表(listAfter)
entity1
entity4
entity2
entity3
使用比较这些列表的结果
Javers.compareCollections( listBefore, listAfter, Entity.class )
是:
containerChanges:[(3).removed:'entity4', (1).added:'entity4']
由此我可以推断:entity4 从索引 3 移动到索引 1。
如果我重复相同的比较,这次在第二个列表中添加一个新项目:
entity1
entity4
entity2
entity3
entity5
比较的结果是:
containerChanges:[(3).'entity4'>>'entity5', (1).added:'entity4']
这似乎忽略了在索引 (4) 处添加了“entity5”(即不是 3)并且“entity4”像前面的示例一样移动的事实。
更新:我在上面的例子中使用了 Levenshtein 比较器。
任何澄清将不胜感激。