java - @Transactional 继续异常处理

标签 java hibernate spring-mvc spring-transactions

我面临一些奇怪的问题..

比方说:

@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/

相关文章:

java - 如何更改 JLabel 和 JButton 的颜色

java - maven、eclipse 和 wtp 无缘无故坏掉了 : it stopped putting the mvn depentent jars in the WEB-INF/lib

java - 具有不同实体错误的 JPA 托管映射

java - Hibernate 一对一映射的合并问题

java - Spring 对缺少参数的 MVC 方法的建议

java - 从 spring 4.3.2 升级到 5.0.2 导致缺少 @AliasFor 错误

c# - 具有所有静态方法的类有什么问题吗?

java - 在 ESB mule 中发送 POST 请求

eclipse - Hibernate-annotations 3.4.0.GA 和 slf4j?

java - 亲子关系 hibernate