使用JPA查詢數據,對查詢出來的結果進行修改,可是不保存數據庫,最終數據庫卻作了一樣的修改。數據庫
解決方案:須要對修改的值從新複製到另外一個對象中在進行修改。緩存
緣由:session
JPA有如上所示的四個生命週期:.net
New:瞬時對象,還沒有有id,還未和Persistence Context創建關聯的對象。
Managed:持久化受管對象,有id值,已經和Persistence Context創建了關聯的對象。
Datached:遊離態離線對象,有id值,但沒有和Persistence Context創建關聯的對象。
Removed:刪除的對象,有id值,尚且和Persistence Context有關聯,可是已經準備好從數據庫中刪除
當從數據庫獲取的數據後,由於有事務管理,因此數據已與session關聯,而且數據庫有數據,已經持久化了,而且在數據庫的緩存當中了,當咱們對查詢出來的數據進行修改時,緩存緩存Session中的數據發生改變,那麼接着數據庫也會跟着進行相應的改變。因此就自動執行了update的更新操做。對象
————————————————
版權聲明:本文爲CSDN博主「小甜寶」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/nanxuan1030/article/details/82986270blog