jfinal club中并没有配置声明式事务,也未使用任何Tx.class注解,那它是如何保证事务安全的呢?我测试过异常情况,不加tx注释,的确不会回滚。
  
    testTx() {
        String loginIp = IpKit.(getRequest());
        Integer accountId = ;
        Project project = Project();
        project.setId();
        project.setAccountId();
        project.setName();
        project.setTitle();
        project.setContent();
        project.setCreateAt(Date());
        project.save();
Account account = Account();
        account.setId(); //primary key异常
        account.setCreateAt(Date());
        account.setNickName();
        account.setUserName();
        account.setPassword();
        account.setSalt();
        account.setIp(loginIp);
        account.setStatus();
        account.setAvatar();
        account.save();
        renderText();
    }
action不加  @Before(Tx.class)的话,的确会出异常。加了就可以保证。 
 
 
 
 
 
在项目中搜索一下 Db.tx 就可以搜得到这些地方
此外,如果你要使用 @Before(Tx.class) 来做事务,通常需要添加一个全局拦截器,拦截 @Before(Tx.class) 抛出的异常,然后根据异常的类型来决定 render(...) 到什么地方,或者 renderJson(...) 什么内容
如果你的项目中有很多地方要使用事务,使用 @Before(Tx.class) 再配合一个全局拦截器会比较方便,否则使用 Db.tx 会更方便