我有一个AbstractEntity类作为超我所有entites的定义是这样的乐观锁定列:OptimisticLocking和@OneToMany(mappedBy = ...)处理?
@Version
private long lockVersion;
现在,我经常得到实体OptimisticLockingExceptions,那些只在一个变化类似于下面的的mappedBy关系:
@OneToMany(mappedBy = Property.PROPERTY_DESCRIPTOR, cascade = { CascadeType.REMOVE })
private Set<Property> properties = new HashSet<Property>();
是否有可能从Hibernate乐观锁定中排除这些集合?实体在数据库中根本没有变化......只有其他人引用它。
这看起来很有前途......我会检查它是否能解决我的问题。 – 2009-10-28 22:24:38
我已将此注释添加到所有不会级联合并或保持的mappedBy集合。 另一种解决方案是区分非托管实体的entity.getCollection()。add(...)和托管实体的em.refresh(实体)。这也避免了锁定问题。 – 2009-10-29 09:13:25