TX拦截器本身就可以通过捕获到异常自动回滚事务是,
如果我们希望自己在控制中捕获异常从而输出json之类数据以供调用
// 控制器中的代码大致如下
public void action() {
Integer[] ids = getParaValuesToInt();
try {
MyService ms = Duang.duang(MyService.class);
ms.delete(ids);
}
catch(Exception e) {
renderJson(...);
return ;
}
render(....);
}
// Service 中的代码大致如下:
public class Service {
@Before(Tx.class) // 业务层使用事务拦截器
public void delete(Integer[] ids) {
String idStr = StrKit.join(ids, ",");
Db.update("delete from table where id in(" + idStr + ")");
}
}