在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("把录播的信息插入数据库失败");
}
}
网友评论