【发布时间】:2015-01-03 03:02:43
【问题描述】:
我遇到了一些奇怪的问题..
假设:
@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 作为 x 值 TestObject。我试图声明@Transactional(rollbackFor = Exception.class) - 没有成功。始终提交,不回滚!
在所有其他方法中,交易没有任何问题 - 一切正常!
有什么建议吗?提前谢谢!
【问题讨论】:
-
异常的堆栈跟踪是什么?扔到哪里去了?
-
我是手动做的,我猜是这个问题
-
你为什么不回答这个问题?
-
@JBNizet 请看一下代码。它会手动抛出错误。无论如何,没有任何堆栈跟踪,因为我只需要它来签名 - 如果抛出异常,那么我必须以单独的方式处理它
标签: java hibernate spring-mvc spring-transactions