jfinal在service增加事务管理

1. 注解方式

  • 在service的类名上或方法上增加注解
class TestSrv{
    @Before(Tx.class)
    public void insertData() {

    }
}

注意:

service中的方法不要catch异常,否则不会回滚

  • 在action中调用
TestSrv t = enhance(TestSrv.class);
或者
TestSrv t = Enhancer.enhance(TestSrv.class)
或者
TestSrv t = Duang.duang(TestSrv.class);

然后
t.insertData();

2. 拦截器方式

  • 配置拦截器
public void configInterceptor(Interceptors interceptors) {
        //给service增加事务控制,匹配方法名为开头单词是save、update、delete,后面不限制
        interceptors.addGlobalServiceInterceptor(new TxByMethodRegex("(save.*|update.*|delete.*)"));
    }
  • service的方法不需要加注解,但要注意方法的命名一定要匹配上拦截器的配置,比如:saveUser等
class TestSrv{
    public void saveUser() {

    }
}

注意:

service中的方法不要catch异常,否则不会回滚

  • 在action中调用同注解方式

原文出处:/show_1EFa0tzUMhO.html