我正在使用 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/