使用Hibernate @Entity
注释的对象作为地图中的键是否安全?安全意义如果对象的数据库ID相同,我希望两个键是相同的。我在没有分离对象的事务范围内使用它。
答案 0 :(得分:3)
如果您确认两个对象在id相同时(您刚才这样做)相等,则应基于此覆盖hashCode
和equals
。如果您已经这样做了,这些对象可以安全地用作键。当然假设这些ID不会改变。
编辑:限制这些ID的更改限制了您在持久化之前创建和添加对象作为集合的关键字。通常建议use a business key in your hashCode
and equals
。