我有两个数据库对象(在数据库中是同一对象),但是它们具有不同的哈希值:

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以获得所需的行为。

09-16 00:37