根據定義,新實體化的 POJOtransientPerson是一個瞬態物體。
Person transientPerson = new Person();
從持久背景關系中分離的物體是分離的物體。
Person detachedPerson = session.get(Person.class, id);
session.detach(detachedPerson);
detachedPerson設定into的所有欄位后transientPerson,transientPerson仍然是一個瞬態物體嗎?
transientPerson.setId(detachedPerson.getId());
transientPerson.setName(detachedPerson.getName());
如果是這種情況,是否意味著我可以用來persist(transientPerson)更新資料庫中的相應表?
uj5u.com熱心網友回復:
瞬態物體和分離物體之間的主要區別在于該物體是否真的在資料庫中存在相應的記錄。瞬態物體沒有,但分離物體有(參見那里的官方定義)。
所以在這種情況下,transientPerson技術上將變得分離,因為它確實存在一個資料庫記錄。
呼叫persist()資料庫中已經存在的物體(即分離物體)將拋出EntityExistsException. 您必須使用merge()插入或更新分離的代替。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/459051.html
標籤:休眠
