JPA 循環調用save方法只添加一條數據

今天上午遇到問題使用jpa hibernate批量添加數據,發現死活只能添加一條數據

我的做法是只new一個對象,然后每次循環改變對象的一個屬性,并且循環插入數據庫

最后發現是自己才疏學淺了


hibernate中變量的幾種狀態:瞬時態,持久態,游離態。

瞬時態:也稱只有態,只存在與內存中,而與數據中沒有對應數據。

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

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

三個狀態之間的轉換:

在循環調用save方法保存對象到數據庫中時,需要注意保存的時候如果obj沒有改變,只有第一次執行insert方法,后面所有的save方法都只會執行update方法,因為obj在第一次執行save方法時,這個obj就會從瞬時態變成持久態后面所有的操作都是對obj持久態操作,必須通過new來重新實例化這個obj。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容