如何比较两个休眠实体列表是否相等

时间:2019-09-20 05:41:55

标签: java list hibernate jpa java-8

我有2个休眠实体的列表。  我需要比较一下。当我使用equals()时,它总是给出false,因为其引用是不同的。

E1.equals(E2)

1 个答案:

答案 0 :(得分:2)

这是因为仅在评估相等性时才引用List对象。您将不得不遍历集合进行检查(假设顺序很重要):

E1.size() == E2.size() && IntStream.range(0, E1.size())
    .allMatch(index -> E1.get(index).equals(E2.get(index)));

P.S.1:变量名称在Java中用小写字母表示。

P.S.2:确保正确定义了equalshashCode。默认情况下,同一实体在不同状态(托管,分离)中不相等。