Spring Boot框架-使用 @Transactional 進行事務管理
阿新 • • 發佈:2019-02-17
往資料庫裡存兩個資料,要求一個存失敗另一個也不能成功怎麼做?
通過對類進行事務註解,可以做到@Transactional public void insertTwo(){ Gril girlA = new Gril(); girlA.setCupSize("A"); girlA.setAge(18); girlRepository.save(girlA); Gril girlB = new Gril(); girlB.setCupSize("B"); girlB.setAge(19); girlRepository.save(girlB); }
預設spring事務只在發生未被捕獲的 RuntimeException 時才回滾,實際上這麼寫是不會成功的,坑好多,emmmmm
我們可以通過丟擲 RuntimeException 的異常來解決
解決,撒花~@Transactional public void insertTwo(){ try{ Gril girlA = new Gril(); Gril girlB = new Gril(); girlA.setCupSize("A"); girlA.setAge(18); girlB.setCupSize("B"); girlB.setAge(19); girlRepository.save(girlA); girlRepository.save(girlB); } catch(Exception ex){ throw new RuntimeException(); } }