我有2个休眠实体的列表。
我需要比较一下。当我使用equals()
时,它总是给出false,因为其引用是不同的。
E1.equals(E2)
答案 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:确保正确定义了equals
和hashCode
。默认情况下,同一实体在不同状态(托管,分离)中不相等。