我读Eric Evans的书约DDD和我有以下报价的问题。当你不应该使用这些属性时,你如何制定equals()
方法?我正在使用JPA,并且我有一个唯一的id属性,但是只有在实际持久化后才能设置。所以你会怎么做?我已经实现了基于属性的equals方法,我明白你为什么不应该这样做,因为它在我的项目中失败了。在实体领域驱动设计
节约实体:
当对象是由它的身份来区分,而不是它的 的属性,使这种初级其在模型定义。保持类别定义简单并集中于生命周期连续性和 身份。定义一种区分每个对象的方法,而不管其形式或历史如何。警惕需要按属性匹配 对象的需求。定义一个操作,保证 为每个对象产生一个唯一的结果,可能通过附加一个保证唯一的 符号。的识别这个装置可以 来自外部,或者它可以是通过 和为系统创建一个任意的标识符,但它必须对应于身份模型中的 区别。该模型必须定义什么意思是 同样的事情。
http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215
可能的复制,见http://stackoverflow.com/questions/5031614/the-jpa-hashcode-equals-dilemma – MRalwasser 2012-02-24 13:27:51
的ID正常工作对我来说:http://stackoverflow.com/questions/7579404/using-auto-generated-id-of-hibenate-entity-object-in-the-the-the-the-the-the-and-hashcode-met – NimChimpsky 2012-02-24 14:54:06