开发者社区> 问答> 正文

jfinal 中开启事务:报错

@Jfinal 最近要使用事务,测试发现怎么配置都没有效果,配置过正则匹配不行,然后使用注解也是无效,在使用注解时调试发现红色区域返回的都是null,貌似不对啊?请大侠们解答...

展开
收起
kun坤 2020-06-05 23:13:37 702 0
1 条回答
写回答
取消 提交回答
  •     红色框部分 txConfig 为 null 很正常,只有在为 Controller 的 method 或者 Controller 配置了 TxConfig 注解才不为 null,整个方法可以返回 null 值给用者,如果最终为 null ,注意看 Tx.java 中的第 54 行:

    if (config == null)
      config = DbKit.getConfig();



       即当没有为 action 或 controller 配置 TxConfig 注解时,会使用默认的 Config ---> DbKit.getConfig()。

         事务不生效的原因有很多,主要有如下:

    1:mysql 数据库需要将表的引擎设置为 InnDB

    2:事务级别要足够合适,默认事务级别的 2,读取数据到内存再改变数据存入数据库的场景需要设置极别为 4 才符合事务要求


    ######回复 @littleant : 先后顺序严格按照先全局、后Controller、最后action的次序,在全局、Controller、action 同一等级里面,配置在前面的就先执行######回复 @JFinal : 明白了,老大,那怎么设置拦截器的先后顺序呢,特别是在Tx拦截器的前后顺序,我自己写的拦截器怎么设置在他前面?######回复 @littleant : 有人是加了一个统一的全局异常拦截器,规范化了异常输出数据######回复 @littleant : 在 Tx 拦截器前面加拦截器,接管所有异常,然后再适当 render 自己满意的数据出去。注意是 Tx 前面加拦截器不是后面######恩,找到原因了,我在拦截器捕获了所有异常跳转到指定提示页面,如果把异常继续抛出就能回滚,郁闷,那我改如何处理异常提示信息页面呢?直接使用setError500View显示异常信息页?
    2020-06-05 23:13:45
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载