关于实体中的 Hashcode 和 Equals 以及 toString 方法的问题

Question regarding Hashcode and Equals and toString method in Entities

我想知道当我们处理具有一对多关系的实体时,在覆盖 hashcode 和 equals 方法时应该包含哪些实例变量的规则。

有这个实体,其中 User 有很多联系人,所以联系人 class 显然有一个实例变量 User 用户。所以当我 select 覆盖 hashcode 和 equals 方法时的所有字段时,它在 toString 方法中显示 WhosebugError。

你的错误是合乎逻辑的,因为我猜你有一个双向关系并且你在两边都引用了 entity.equals/hashcode.. 所以形成了一个无限循环。

直接在 User.contactContact.user equals/hash 实施中删除对实体上 equals/hashcode 合同的调用。

这将解决您的问题。

由于双向关联,您收到错误消息。但更重要的是,一个实体的身份不应该依赖于关联的实体。哈希码和相等性应该只取决于您的用户实体的属性。