Hibernate将PersistentSet与HashSet进行比较

时间:2016-07-05 07:49:35

标签: java hibernate

我有问题。在我的JUnit测试中,我想测试hibernate完成的db中的插入。我有一个实体,它有一个Setlist,我想看看插入的列表是否等于我设置的列表。

assertEquals(listDerogationLinux, derogation.getListDerogationLinux());

问题是hibernate使用PersistentSet而我使用HashMap所以当我尝试比较它时我得到了一个AassertionError:

java.lang.AssertionError: expected: java.util.HashSet<[...]> but was: org.hibernate.collection.internal.PersistentSet<[...]>

我已经尝试了很多东西,但唯一有用的是使用PersistentSet创建一个新的hashSet,但它确实很难看......

assertTrue(new HashSet<DerogationLinux>(derogation.getListDerogationLinux()).equals(listDerogationLinux));

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

尝试在PersistentSet而不是HashSet上调用equals。它应该工作。

persistentSet.equals(hashSet)