java 。具有不同哈希值的相同对象

标签 java

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

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/

相关文章:

java - 基于嵌套数组的Elasticsearch聚合查询

java - Spring 集成服务激活器不发送空回复

java - 在 Android 中移动形状

java - 如何连接到在 GCP 虚拟机实例上运行的 Grakn 服务器

java - Android webView不显示地理位置

java - 有哪些工具可以分析 Java 中堆外的内存使用情况?

java - 螺旋形地画线

java - j2me随机不起作用

java - 在为此目标 Web 运行测试用例之前,如何使用多线程启动 Web 应用程序?

java - Google Cloud Platform pub/sub Publisher,如何提供默认应用程序凭据以外的凭据