在Java持久与Hibernate,加文认为,我们用平等比较的业务重点。商业密钥不仅可以涉及多个领域的比较,而且也不能保证“完美”的商业密钥的语义将来不会改变。我们生活在非理想世界,商业需求和法律变化非常频繁。在这种情况下,我们将留下存储在多个业务密钥语义中的数据库中的数据。我想将问题分解成两部分:Hibernate对象的身份
- 当我们严格处理持久或分离的对象时。
当我们处理瞬时对象。
我还没有看到在使用了平等和hashCode代理键,如果我们处理的持续性和分离对象的任何缺点。如果两个持久对象具有相同的主键,则它们是相等的。这是错误的假设?
当我们处理瞬态对象时,我们可以使用业务键语义来比较对象,并且如果尝试使用相同的业务关键字持续两个临时对象但余数属性中的值不同,则可以使用合并策略。
在阅读繁重的应用程序中,大部分事务都被读取/更新,这种策略应该会产生更好的性能。
什么是“商业钥匙”? – 2009-08-02 22:44:50
商业密钥唯一标识对象 - 该密钥不应来自已经解释过的数据库。可以是实体中的UUID或组合或字段。 – JamesC 2009-08-03 11:19:57