本地事務(wù)記錄

  1. @Transactional默認(rèn)只回滾RuntimeException
    而類似IOException這種需要編寫(xiě)代碼處理的默認(rèn)不會(huì)回滾, 可通過(guò)rollbackFor = Exception.class使得其也會(huì)滾
  2. 被catch的異常, 不管是哪一類, 如果不繼續(xù)往外拋, 都是不會(huì)回滾的; 如果要拋出, 看1
  3. 同一個(gè)service中的兩個(gè)方法調(diào)用, 假設(shè)controller調(diào)用add1
    /**
     * add2中的sql也會(huì)回滾
     * 因?yàn)檫@里的this指向的不是代理對(duì)象而是原始對(duì)象
     * 所以不存在事務(wù)的增強(qiáng)
     */
    @Transactional(propagation = Propagation.REQUIRED)
    public void add1()
    {
        studentMapper.insert(Student.builder().name("test1").age(26).build());
        this.add2();
        int a = 1 / 0;
    }

    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void add2()
    {
        studentMapper.insert(Student.builder().name("test2").age(26).build());
        studentMapper.insert(Student.builder().name("test3").age(26).build());
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容