好的,这是this one的后续问题,因为我现在非常困惑。Hibernate中实体集合的陷阱
假设我有一个一对多或多对一的许多实体Person
和Event
等之间的关联,一个Person
类在Java中包含Set<Event>
。 (让我们忽略Event是否包含单个Person
或Set<Person>
。)
Event
s是存储在数据库中的实体,因此我可以更改事件字段。什么是正确的方式来处理Event
可变性,并没有得到Java Set身份检查困惑?在这种情况下,你是否应该覆盖hashCode()
和/或equals()
? (例如,标识=基于对象参考标识)
如果我要订购Event
(例如通过事件开始时间),如何管理更改Event
的字段?一旦变化传播到那里,数据库就会处理好,但在Java方面,这是否意味着为了更改集合中的事件,我必须将其删除,更改并重新插入?还是没有真正的方法来维护Hibernate映射的Java端的排序顺序? (因此我必须把它当作无序的,因此处理Java中的排序,每当我想要得到的Event
个排序列表?)
编辑:呸,我只是发现了等号这些讨论/的hashCode: