我有一个实体,比方说一个使用
@EqualsAndHashCode(callSuper = true)
自动生成equals()
和hashCode()
方法的 Lombok 注释的项目。实体被放在一个HashSet
集合中。
问题是,当我从数据库(Spring JPARepository
with Hibernate)PersistentSet
代理获取包含我的项目的集合HashSet
时,当我使用Lombok@EqualsAndHashCode
时,该方法 persistentSet.contains(object)
返回false
. 当我hashCode()
返回 1 或其他值但没有 Lombok自动生成的方法时,它可以正常工作 ->persistentSet.contains(object)
返回true
。Lombok 自动生成的其他内容hashCode()
似乎也很好,因为它返回会话中给定对象的常量值。所以我迷路了。
也许有人知道我们在这里可能错了什么!?
版本:
休眠:5.3.9.Final
Lombok:1.18.10
数据库:MySQL
Spring:5.1.9.RELEASE