繼續總結
-
VUE資料修改后,頁面或者樣式未生效
主要是因為資料層次過深,沒有觸發render函式進行自動更新,需手動呼叫
this.$forceUpdate(); -
@Transactional 注解,當方法出現例外時未生效
有幾種情況會出現事務未生效的狀況-
方法上使用了 @Transactional 注解,在方法中捕獲了例外,沒有拋出,例如方法B出現例外時,方法A依然會插入入庫
@Transactional
public void insert(){
try {
TestPO testPO = new TestPO();
testPO.setName("測驗1");
//方法A demoMapper.insert(testPO);
//方法B testService.batchInsert();
} catch (Exception e) {
e.printStackTrace();
}
} -
controller呼叫service層方法A時,方法A上未加@Transactional 注解,方法A呼叫了 加了@Transactional 注解的方法B
controller層
`public void insert(){
service.methodA();}`
service層
public void methodA(){
methodB();
}
@Transactional public void methodB(){ mapper.insert(); }這種情況注解也不會生效,原因主要是因為在SpringIoC容器中回傳的物件是代理物件而不是真實的物件
只有被動態代理的物件在呼叫時才會產生事務,
這里的methodB()就等于this.methodB()呼叫的是真實的物件,不是Spring管理的代理物件,
若還是想通過methodA() 呼叫 methodB() 可以使用
public void methodA(){
((當前類名)AopContext.currentProxy()).methodB()
} -
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/229358.html
標籤:其他
