我有两个数据库对象(在数据库中是同一对象),但是它们具有不同的哈希值:
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的项目。两个项目中的配置文件相同。休眠版本也相同。但是在另一个项目中,这会产生相同的哈希码。
最佳答案
您打印的是对象引用。如果您通过调用new创建每个引用,则它们的确不同。
您需要根据“有效Java”重写equals,hashCode和toString以获得所需的行为。