我面临一些奇怪的问题..
比方说:
@RequestMapping(value = "/do", method = RequestMethod.POST)
public void do() {
try {
Float x = 200;
Float y = 100;
TestObject x = new TestObject(x, y);
x.setX(50);
if (x.getX() > x.getY())
testService.save(x);
else
throw new Exception("ERROR");
}
catch (Exception e) {
errorsService.save(e);
}
}
两者save
方法被标记为 @Transactional
.
问题:一旦代码抛出异常 - errorsService.save(e);
进行提交 - 添加 50
作为 TestObject
的 x 值。我试图声明@Transactional(rollbackFor = Exception.class)
- 没有成功。始终提交,不回滚!
在所有其他方法中,交易没有任何问题 - 一切都很完美!
有什么建议吗?预先感谢您!
最佳答案
要回滚事务,需要从 @Transactional 方法内部抛出异常,但在您的情况下不会发生这种情况。
关于java - @Transactional 继续异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26782305/