例如商品购买业务中,同时实现订单表支付状态的更改以及用户表账户余额的更改。如何保证其中一个更改操作失败时,另外一个操作自动撤销?
看到有一个@Before(Tx.class),但是不知如何使用,求指教。
注意:MySql 数据库表必须设置为 InnoDB 引擎时才支持事务,MyISAM 并不支持事务。
最简单的方式:
在 Controller 的 Action 上面加@Before(Tx.class) ,
(ps:不能在其他类直接加 @Before(Tx.class), 如果需要使用, 具体使用方式参考 手册第4.6 Duang 、Enhancer 章节
如手册例:
@Before(Tx.class)
public void trans_demo() {// 这是 Controller 的一个 Action
//....
}
其他使用方式细读手册 :)
拦截器的配置方法见 Interceptor 有关章节 章节