首先需要知道在hibernate中變量的幾種狀态:瞬時态,持久态,遊離态。
瞬時态:也稱隻有态,隻存在與記憶體中,而與資料中沒有對應資料。
持久态:與session關聯并且在資料庫中有相應資料。已經持久化,加入到了Session緩存中。
遊離态:持久化對象脫離了Session對象,如session緩存被清空的對象。
三個狀态之間的轉換:
在循環調用save方法儲存對象到資料庫中時,需要注意儲存的時候如果obj沒有改變,隻有第一次執行insert方法,後面所有的save方法都隻會執行update方法,因為obj在第一次執行save方法時,這個obj就會從瞬時态變成持久态後面所有的操作都是對obj持久态操作,必須通過new來重新執行個體化這個obj。