Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate PersistenceSet和Lombok EqualsAndHashCode问题_Hibernate_Hashset_Hashcode_Lombok_Persistent Set - Fatal编程技术网

Hibernate PersistenceSet和Lombok EqualsAndHashCode问题

Hibernate PersistenceSet和Lombok EqualsAndHashCode问题,hibernate,hashset,hashcode,lombok,persistent-set,Hibernate,Hashset,Hashcode,Lombok,Persistent Set,我有一个实体,比如说一个使用Lombok注释的项 @EqualsAndHashCode(callSuper=true)自动生成equals()和hashCode()方法。 这些实体被放在哈希集集合中 问题是,当我从DB(SpringJPARepository和Hibernate)获取集合时,我的项目位于HashSet中,并且当我使用Lombok@EqualsAndHashCode时,方法PersistentSet.contains(object)返回false。当myhashCode()返回1或

我有一个实体,比如说一个使用Lombok注释的项
@EqualsAndHashCode(callSuper=true)
自动生成
equals()
hashCode()
方法。 这些实体被放在
哈希集
集合中

问题是,当我从DB(Spring
JPARepository
和Hibernate)获取集合时,我的项目位于
HashSet
中,并且当我使用Lombok
@EqualsAndHashCode
时,方法
PersistentSet.contains(object)
返回
false
。当my
hashCode()
返回1或其他值但没有Lombok自动生成的方法时,它工作正常->
persistentSet.contains(object)
返回
true
。Lombok自动生成的
hashCode()
似乎也很好,因为它返回会话中给定对象的常量值。所以我迷路了

也许有人知道我们这里可能出了什么问题

版本:
休眠:5.3.9.最终版本
龙目岛:1.18.10
数据库:MySQL

春天:5.1.9.释放

我找到了一个原因。其中一个对象属性具有@PostLoad注释。
调用“persistentSet.”时,必须在初始化@PostLoad注释属性之前计算hascode(对象)

我想我们需要一些(可能是简化的)代码…我不知道这里放了什么代码,因为一切看起来都很好,我的代码中没有什么特别的东西。只是一个带有equals/hascode创建(1)/自动生成(2)方法的类。