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