问题描述:使用jpa的默认的save()明明执行insert成功了(开启控制台的sql已经看到了insert语句),但在数据库却没有更新对应的记录?
FileResource save = fileRepository.saveAndFlush(fileResource);
一来就想到的是跟事务提交有关,自己确实在save方法上使用了声明式事务:
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean saveObj(FileResource fileResource) {
FileResource save = fileRepository.saveAndFlush(fileResource);
return ObjectUtil.isNotEmpty(save);
}
除了开启以上的声明式事务,另外一边,自己又使用编程式事务开启了一个方法的事务。后来把编程事务注释了,看到save()生效了,数据库增加了一行记录。
这是因为出现了两个事务管理器,产生了矛盾吧,我是这样想的;具体准确原因还有待探究,先记录在这里