2013-04-29 90 views
0

嗨即時通訊不能理解爲什麼會發生這種情況保存一個新的實體,它保存所有的列,但不是連接表列和沒有例外拋出的代碼下面給出的保存一個新的實體..保存不工作的連接表列

newEntity=setPropsFromTransientFields(newEntity,"newEntity"); 
sess.save(newEntity); 

但是當我試圖更新exixting記錄,然後將其保存succesfullly連接表列

persistedEntity=setPropsFromTransientFields(persistedEntity,"updateEntity"); 
sess.saveOrUpdate(persistedEntity); 

加入下面

給出的映射表0

回答

0

Hibernate默認情況下不會嘗試執行任何級聯操作。因此,如果您有實體

class E{ 
    List<X> xes; 
} 

那麼您有責任正確處理關係xes。那就是你需要確保X實體保存在數據庫中。你也可以配置級聯保存,然後Hibernate會自行考慮這一點。

您的更新按照您的預期工作,因爲相關對象(我的示例中的X)在添加到Hibernate Session之前,Hibernate自動跟蹤其更改並執行所有必需的數據庫操作。這是我的猜測,因爲我無法看到如何從DB讀取對象。