【发布时间】:2017-11-07 10:57:09
【问题描述】:
我有一个带有JPA 的标准JEE 应用程序。在合并以前分离的实体时,实体管理器是否使用equals 或hashcode 来查找我合并的对象是否已被管理?一般当实体管理器使用hashcode或equals时?这是否受我使用的 JPA 引擎的影响,例如 Hibernate 或 Eclipse Link?
【问题讨论】:
-
EntityManager 根本不使用 hashCode/equals。它们由 java.util.Collection 类使用。
-
如果实体已经被管理,实体管理器如何在合并过程中找到?
-
Collection.contains? EntityManager 知道它正在管理哪些对象
-
就脏检查而言,那些使用字节码增强的人不需要去检查每个字段是否被更改,因为字节码会在字段更改时存储该信息跨度>
-
这个问题似乎是您在寻找解决您在stackoverflow.com/questions/47091598/… 中遇到的问题的方法。如果您认为您的相等/哈希码实现导致了错误,那么删除这些方法并对其进行测试应该会更容易和有效。
标签: java hibernate jpa eclipselink