假設我想合併一個分離的實體。 當我JPA EntityManager的合併方法是否會導致OptimisticLockException?
T mergedEntity = entityManager.merge(detachedEntity);
EntityManager的將加載的實體(與用detachedEntity相同標識符)從數據庫,然後從detachedEntity的所有數據複製到新裝入的實體。當我的交易結束後,這個實體將被保存到數據庫中。
然而,在並行的情況下,在數據庫中的實體可以被其他事務更新的實體在我的交易,首先加載,然後在我的交易結束沖洗。 在這種情況下,我想知道是否會拋出OptimisticLockException?如果是這樣,爲什麼合併API沒有在Java doc中指定OptimisticLockException? http://docs.oracle.com/javaee/6/api/javax/persistence/EntityManager.html#merge(T)
感謝
我認爲合併不會從數據庫中檢索得到的管理實體,但將只克隆給定的脫管的實例。 AFAIK無論如何將會在啓用樂觀鎖定的情況下檢索版本值。我希望@JB Nizet確認他是否不介意。 – Gab