解決SpringBoot+JPA中使用set方法時自動更新數據庫問題


項目進行了三分之二了,突然出現一個很詭異的bug,數據庫存儲的用戶表中密碼信息總是自動消失一部分,頭疼了幾天后突然想起同事有個對低權限用戶查詢的用戶信息向前台傳送時會把密碼設成null后再傳輸,心想是不是這個原因,畢竟就密碼消失了。

仔細一查看,我還真調用了他的那個方法,就是那個set方法把對象密碼清空的同時也更了數據庫,因為第一次接觸JPA項目,有點不明覺厲,請教了公司前輩大牛,給出了解決方法。

首先引入EntityManager:

 

 

然后用它來強轉獲得HibernateEntityManager,然后調用獲得Session,然后在set完之后用Session的.evict()方法清掉該對象緩存(並非所有對象緩存),如此就ok了...

 

 

好吧,已經java11不建議用了,不過還能用,先用着吧!

更新了,有新的獲取Session的方法了,版本高的可以用新方法:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM