Java 如何使两个hibernate实体列表相等

Java 如何使两个hibernate实体列表相等,java,list,hibernate,jpa,java-8,Java,List,Hibernate,Jpa,Java 8,我有两个hibernate实体的列表。 我需要比较一下。当我使用equals()时,它总是给出false,因为它的引用不同 E1.equals(E2) 这是因为只有在计算相等性时才引用列表对象。您必须遍历集合以进行检查(假设排序很重要): p.S.1:变量名在java中是小写的 p.S.2:确保正确定义等于和hashCode。默认情况下,同一实体在不同状态(托管、分离)下不相等 E1.size() == E2.size() && IntStream.range(0, E1.si

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

E1.equals(E2)

这是因为只有在计算相等性时才引用
列表
对象。您必须遍历集合以进行检查(假设排序很重要):

p.S.1:变量名在java中是小写的

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

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