【发布时间】:2013-07-11 11:56:28
【问题描述】:
我从一个数据库中获取我的域对象,然后将它们保存到另一个空数据库。我将 Spring Roo 用于持久层,因此我对持久化的完成方式几乎没有控制(使用合并与持久化)。
坚持时,我得到了异常:
OptimisticLockException:试图附加已删除的实例类型 带有 oid “xxx”的“class xxx”。如果实例是新的,版本字段 应该保留其默认值
据推测,我应该能够将对象的“pcVersionInit”字段设置为 false,让它仍然存在,但这不起作用。
知道如何在域对象级别执行此操作吗?
【问题讨论】:
-
您的实体有生成的 ID 吗?
-
是的,瑞克:@GeneratedValue(strategy = GenerationType.AUTO)
-
即使正确设置了 pcVersionInit 字段,您也会遇到问题。由于您将该字段标记为 @GeneratedValue,因此 OpenJPA 假定 ID 字段将为空,而在您的情况下,它不会是。