[英]Question regarding Hashcode and Equals and toString method in Entities
当我们使用具有一对多关系的实体时,我想知道在覆盖哈希码和 equals 方法时应该包含哪些实例变量的规则。
有这个实体,用户有很多联系人,所以联系人 class 显然有一个实例变量用户用户。 所以当我 select 覆盖哈希码和等于方法时的所有字段时,它会在 toString 方法中显示 stackoverflowError 。
你的错误是逻辑,因为我猜你有一个双向关系并且你在两边都引用entity.equals/hashcode
..所以一个无限循环。
直接在User.contact
或Contact.user
equals/hash 实现上删除实体上对 equals/hashcode 合约的调用。
这将解决您的问题。
由于双向关联,您会收到错误消息。 但更重要的是,实体的身份不应依赖于关联的实体。 Hash 代码和相等性应仅取决于您的用户实体的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.