天天看點

Hibernate 循環調用save 隻會儲存最後一個記錄的解決方法

首先需要知道在hibernate中變量的幾種狀态:瞬時态,持久态,遊離态。

瞬時态:也稱隻有态,隻存在與記憶體中,而與資料中沒有對應資料。

持久态:與session關聯并且在資料庫中有相應資料。已經持久化,加入到了Session緩存中。

遊離态:持久化對象脫離了Session對象,如session緩存被清空的對象。

三個狀态之間的轉換:

Hibernate 循環調用save 隻會儲存最後一個記錄的解決方法
  • 在循環調用save方法儲存對象到資料庫中時,需要注意儲存的時候如果obj沒有改變,隻有第一次執行insert方法,後面所有的save方法都隻會執行update方法,因為obj在第一次執行save方法時,這個obj就會從瞬時态變成持久态後面所有的操作都是對obj持久态操作,必須通過new來重新執行個體化這個obj。

繼續閱讀