java - 实体 equals()、hashCode() 和 toString()。如何正确实现它们?

标签 java hibernate orm entity

我正在使用 bean 中的所有可用字段来实现我的实体的 equals()hashCode()toString() .

当我尝试比较相等性或打印 obj 状态时,我在前端遇到了一些 Lazy init 异常。那是因为实体中的某些列表可以被延迟初始化。

我想知道在实体对象上实现 equals()toString() 的正确方法是什么。

最佳答案

equals()hashCode() 应该使用 business key 来实现- 即一组唯一标识对象的属性,但不是其自动生成的 ID。

toString() 中,您可以放置​​任何有趣的信息 - 例如所有字段。

使用您的 IDE(Eclipse、NetBeans、IntelliJ)为您生成所有这些。

为了避免LazyInitializationException,无论是在equals()还是在你的 View (jsp)中,都可以使用OpenSessionInView .

关于java - 实体 equals()、hashCode() 和 toString()。如何正确实现它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2446590/

相关文章:

java - 在 java 项目中使用 Latlng 的 gradle 依赖

java - ksoap2 android web 服务 复杂类型 byte[]

hibernate - JPA: “Data too long for column”不变

sql-server - Telerik Open Access Profiler 未捕获错误消息,我该怎么办?

java - 使用 rest-assured 作为通用的 http 客户端

java - 如何在网格系统中导航芭比娃娃?

java - 哪个是从 MySQL DB 生成 Hibernate 映射的最佳工具

java - hibernate 环境 : modified field flag name

java - HIbernate 搜索不返回主键搜索结果

java - 实现 toString() 时使用反射有意义吗?