Entities equals()、hashCode() 和 toString()。如何正确实现它们?
我正在实现 ,并且我的实体使用 Bean 中的所有可用字段。equals()
hashCode()
toString()
当我尝试比较相等性或打印obj状态时,我在前端上得到了一些懒惰的初始化异常。这是因为实体中的某些列表可以延迟初始化。
我想知道实现和实体对象的正确方法是什么。equals()
toString()
我正在实现 ,并且我的实体使用 Bean 中的所有可用字段。equals()
hashCode()
toString()
当我尝试比较相等性或打印obj状态时,我在前端上得到了一些懒惰的初始化异常。这是因为实体中的某些列表可以延迟初始化。
我想知道实现和实体对象的正确方法是什么。equals()
toString()
equals()
并且应该使用业务键实现 - 即一组唯一标识对象的属性,但不是其自动生成的ID。hashCode()
,您可以输入任何有趣的信息 - 例如所有字段。toString()
使用您的IDE(Eclipse,NetBeans,IntelliJ)为您生成所有这些。
为了避免 ,无论是在视图中还是在视图中 (jsp),都可以使用 OpenSessionInView
。LazyInitializationException
equals()
当您为 Hibernate 对象实现 equals 和 hashCode 方法时,重要的是
instanceof
更多信息:
Stackoverflow:重写-等于-和-hashcode-in-java
编辑:关于不直接访问类属性的相同规则也适用于toString方法 - 仅使用getters可以保证返回类中真正包含的信息。