美文网首页
在Spring事务管理下,Synchronized为啥还线程不安

在Spring事务管理下,Synchronized为啥还线程不安

作者: xiaohei_e853 | 来源:发表于2022-03-18 09:43 被阅读0次

在Transactional注解内的方法调用其他方法时,使用的是this方式调用的时候不会生效~~~

    @Override
    public synchronized void saveCourseChapterLiveRecord(CourseChapterLiveRecord courseChapterLiveRecord) {
        this.saveRecord(courseChapterLiveRecord);
    }

    @Transactional
    public void saveRecord(CourseChapterLiveRecord courseChapterLiveRecord) {
        //先查数据看是否已经存了
        if (findOrder(courseChapterLiveRecord)){ return;}
        int row = this.insertSelective(courseChapterLiveRecord);
        if (row<1){
    log.info("把录播的信息插入数据库失败 参数是->{}", JSON.toJSONString(courseChapterLiveRecord));
    throw new RRException("把录播的信息插入数据库失败");
        } 
    }

改成如下

    @Override
    public synchronized void saveCourseChapterLiveRecord(CourseChapterLiveRecord courseChapterLiveRecord) {
        courseChapterLiveRecordServiceImpl.saveRecord(courseChapterLiveRecord);
    }

    @Transactional
    public void saveRecord(CourseChapterLiveRecord courseChapterLiveRecord) {
        //先查数据看是否已经存了
        if (findOrder(courseChapterLiveRecord)){ return;}
        int row = this.insertSelective(courseChapterLiveRecord);
        if (row<1){
    log.info("把录播的信息插入数据库失败 参数是->{}", JSON.toJSONString(courseChapterLiveRecord));
    throw new RRException("把录播的信息插入数据库失败");
        } 
    }




链接:https://juejin.cn/post/6844904005282332685

相关文章

网友评论

      本文标题:在Spring事务管理下,Synchronized为啥还线程不安

      本文链接:https://www.haomeiwen.com/subject/rctpdrtx.html