2013-07-11 42 views
1

我從一個數據庫獲取我的域對象,然後將它們保存到另一個空數據庫。我爲持久層使用Spring Roo,所以我對持久化的完成方式(使用merge vs persist)有最小的控制。OpenJPA OptimisticLockException:從一個PersistenceUnit中分離對象並將其保存到另一個

堅持的時候,我得到異常:

OptimisticLockException:試圖連接刪除實例類型 「類XXX」 OID爲 「XXX」。如果實例是新的,版本字段 應該留給它的默認值

按說,我應該能夠設置對象以虛假的「pcVersionInit」領域,還是要把它堅持下去,但不起作用。

任何想法如何做到這一點在域對象的水平?

+1

您的實體是否有生成的ID? – Rick

+0

是的,Rick:@GeneratedValue(strategy = GenerationType.AUTO) –

+1

即使你正確設置了pcVersionInit字段,你也會遇到問題。由於您將該字段標記爲@GeneratedValue,OpenJPA假定ID字段將爲空,在您的情況下,它不會。 – Rick

回答

1

刪除Id字段上的@GeneratedValue註釋解決了問題。感謝提示,裏克!

相關問題