Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.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
Java Spring与Hibernate集成获得重复记录_Java_Spring_Hibernate_Collections_Hibernate Mapping - Fatal编程技术网

Java Spring与Hibernate集成获得重复记录

Java Spring与Hibernate集成获得重复记录,java,spring,hibernate,collections,hibernate-mapping,Java,Spring,Hibernate,Collections,Hibernate Mapping,在我们的项目中,我们使用Spring和Hibernate,并使用其他团队JAR作为依赖JAR从oracle数据库获取数据 即使我们在模型类中实现了equals()和hashCode()方法,并且将这些对象存储在HashSet中,我们也会得到重复的记录。我很奇怪为什么set允许在这里复制对象。即使hashCode()和equals()方法被重写 如果您观察到屏幕快照,modcount大小不同,表大小也不同 从类中删除hashCode()或equals() 如果在类中重写equals和hashcod

在我们的项目中,我们使用Spring和Hibernate,并使用其他团队JAR作为依赖JAR从oracle数据库获取数据

即使我们在模型类中实现了equals()和hashCode()方法,并且将这些对象存储在HashSet中,我们也会得到重复的记录。我很奇怪为什么set允许在这里复制对象。即使hashCode()和equals()方法被重写

如果您观察到屏幕快照,modcount大小不同,表大小也不同

  • 从类中删除hashCode()或equals()

  • 如果在类中重写equals和hashcode方法,则equal对象返回相同的hashcode。。HashSet不允许使用相同的hashcode,因为HashSet验证基于hashcode的复制,所以解决方案是:可以从类中删除hashcode()或equals()

      • 从类中删除hashCode()或equals()

      • 如果在类中重写equals和hashcode方法,则equal对象返回相同的hashcode。。HashSet不允许使用相同的hashcode,因为HashSet验证基于hashcode的复制,所以解决方案是:可以从类中删除hashcode()或equals()


      请提供您的代码。这将有助于理解问题。顺便说一句,仅因为您实现了
      equals
      hashCode
      并不意味着您不能有重复的代码。请提供您的代码。这将有助于理解这个问题。顺便说一句,仅仅因为您实现了
      equals
      hashCode
      并不意味着您不能有重复项。