我有来自数据库的两个对象(在数据库中它是同一个对象),但它们具有不同的哈希值:
GroupType groupType = groupTypeDao.findById(3);
GroupType groupType1 = groupTypeDao.findById(3);
System.out.println(groupType);
System.out.println(groupType1);
我得到这个输出:
GroupType@6040
GroupType@6041
这是为什么呢?技术栈:Spring、JavaFX、Hibernate。
我还有另一个使用 Spring 和 Hibernate 的项目。两个项目中的配置文件是相同的。 Hibernate 版本也相同。但在另一个项目中,这会产生相同的哈希码。
最佳答案
您打印的是对象引用。如果您通过调用 new 创建每个引用,它们确实会有所不同。
您需要根据“Effective Java”重写 equals、hashCode 和 toString 以获得您想要的行为。
关于 java 。具有不同哈希值的相同对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39999570/