有一段程序,执行插入和删除数据库表数据的操作,可是其中有一个表的数据是保存成功的,有一个表的数据是保存失败的,程序执行成功了。为什么保存到第一个表中成功,第二个表失败呢,程序在一个方法里不应该是一个事务么,就算是两个事务来看,为什么第一个回滚成功,第二个也没提示失败呢,数据就是没保存进去。到底怎么回事,第一次遇到这种情况,还请大神解惑
事务的原子性确保动作要么全部完成,要么完全不起作用。可这次遇到的情况是部分完成,这是说明此方法里的程序被分为多个事务处理了?想不到其他的处理办法,我只能把这段程序做封装处理。这种情况也只是才出现一次
@Transactional(readOnly = false) 在你那端代码上面加上 这个 如果你用了spring事务管理的话
建议找一下没有保存的原因,事物需要有异常出现才会回滚的吧,所以你的第二段代码应该没有抛出异常,是正常执行的
嗯,service层是用到spring事务管理的,而这段代码写在了action里面,所以我把它封装到service层,想看下还会不会出现这种情况,目前服务器上的代码还没有改,但也没有再出现这种情况,如果再出现,我就把最新的代码更新上去看下是否得到彻底解决
把错误代码粘一下,应该是代码问题