SpringJAP修改表數據時遇到的問題

   最近在做一個需求,使用的是SpringJPA框架去做的,遇到了一個問題 簡單來說就是  我查詢出來A表和B表的數據 然後對應的A和B的實體都做了賦值修改,然後我只想修改B表的數據 然後使用倉庫repository.save(B)的方法,神奇的事情發生了,最後查看數據的時候 A表和B表的數據都按照我修改賦值的那樣 發生了變化 ,也就是說 我再修改B表數據的時候 哪怕不調用A表倉庫repository.save(A)的方法 數據庫也會把A表的數據做修改。

   因爲我之前做的控制是

   if(條件成立){

       A倉庫repository.save(A);

}

只要是A的模型發生了改變,你再修改其他表數據修改其他表數據的時候 A表也會一起更新。所以後面我的做法就是把判斷提前到了修改A表數據之前 這樣修改B表的時候 A表的數據沒有發生變化 所以就不會執行update操作,下面我模擬復現一下場景,可以看出來:

1.首先2張表的put_status都是1

A表

B表

 

2.使用JPA查詢出來數據然後都重新賦值爲3

3.控制檯打印

 

我這裏只更新了B表的數據 但是由於A表的數據我重新給實體賦值了,所以在更新B表的時候A表也同樣一起執行了更新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章