@transactional(propagation = propagation.required)
public void reloadfoodata()
加了事務註解,reloadfoodata()方法中的語句要麼都執行成功,要麼都執行失敗(回滾)。
但我的情況是:clear操作成功,rebuild失敗。且沒有回滾導致我的資料丟了!!!
我在clearallrecord()
方法中執行的sql是truncate table tb_name
,是為了快速清空表資料
。
改為delete from tb_name
即可。
原因:truncate掉的資料無法通過事務恢復
`truncate table tb_name`
`delete from tb_name`
同:結果都是刪除了表中的所有記錄。
異:不帶where條件的delete語句會記錄刪除每一行記錄的日誌。而truncate不記錄每一行的,只記錄頁面的釋放。
所以其各自的優點:
delete的記錄可回滾;
truncate語句執行更快(執行過程中占用的系統和日誌資源更少)。
變數被刪除
當乙個動態分配的變數被刪除,記憶是 返回 到堆,然後可以作為未來分配請求的接收。堆的優點和缺點 1 分配的記憶體分配到具體在釋放 注意記憶體洩漏 2 動態分配的記憶體必須通過指標訪問。3 由於堆是乙個大的記憶體池,大的陣列,結構,或類應該分配在這裡。堆疊 呼叫堆疊 通常稱為 疊 有乙個更有趣的角色。...
usr bin被刪除的操作
誤刪 usr bin後快速恢復操作 1.在區域網中找一台好的伺服器,使用如下命令,將scp cp命令傳過去 1 2 gzip c usr bin scp ssh 10.0.0.8 gunzip c usr bin scp 2.在被誤刪的服務上進行操作。如果有chmod命令就執行以下命令 1 cd u...
被刪除檔案恢復原理
打個通俗易懂的比方,檔案在磁碟上的儲存就像是乙個鍊錶,表頭是檔案的起始位址,整個檔案並不一定是 連續的,而是乙個節點乙個節點的連線起來的。要訪問某個檔案時,只要找到表頭就行了。刪除檔案時,其實只是把表頭刪除了,後面的資料並沒有刪除,直到下一 次進行寫磁碟操作需要占用節點所在位置時,才會把相應的資料覆...