0

假设我有以下示例:

@Transactional(propagation=Propagation.SUPPORTS, readOnly=true)
public class MyServiceImpl implements MyService {

    ...

    @Transactional(propagation=Propagation.REQUIRED, readOnly=false)
    public TransactionResponse addMyEntity(MyEntity e) throws SQLException{
        ...
    }

    ...
}

在我的应用程序上下文中:

<tx:annotation-driven transaction-manager="txManager" />

好的,现在如果抛出 SQLException,我想在事务回滚后添加一个拦截器。我怎样才能做到这一点?

提前致谢

编辑

我将尝试澄清我正在尝试做的事情:

我有一个 WS,它在数据库上保留一些信息并返回一个响应(如果出现问题,一个 isOk 布尔值和一个 errorMessage)

每当出现异常时,我需要:

  • 回滚事务
  • 使用错误消息构建响应并将其返回给客户端。

这就像 spring 的事务代理的 try/catch

4

1 回答 1

1

使用您将使用的拦截器order的 和 属性。tx:annotation-driven因此,您可以指定哪个在另一个之前运行。请参阅AOP AspectJ 建议订购部分

于 2010-11-28T08:38:14.533 回答