【发布时间】:2009-07-02 21:26:08
【问题描述】:
好的,这是this one 的后续问题,因为我现在真的很困惑。
假设我在实体Person 和Event 之间存在一对多或多对多关联,这样Java 中的Person 类包含Set<Event>。 (让我们忽略 Event 是否包含单个 Person 或 Set<Person>。)
Events 是存储在数据库中的实体,因此我可以更改事件字段。处理 Event 可变性而不使 Java Set 身份检查混淆的正确方法是什么?在这种情况下,您永远不应该覆盖 hashCode() 和/或 equals() 吗? (例如身份 = 基于对象引用身份)
如果我希望对 Events 进行排序(例如,按事件开始时间),我如何管理更改 Event 的字段?一旦更改传播到那里,数据库就会很好地处理它,但是在 Java 方面,这是否意味着为了更改集合中的事件,我必须删除它、更改它并重新插入?或者没有真正的方法来维护 Hibernate 映射的 Java 端的排序顺序? (因此我必须将其视为无序的,因此每当我想获得 Events 的排序列表时,我必须在 Java 中处理排序?)
编辑: 糟糕,我刚刚在 equals/hashCode 上找到了这些讨论:
【问题讨论】:
标签: java hibernate collections mutable