开发者社区> 问答> 正文

请问在jfinal中如何实现嵌套的事物?

我在一个大的事物中要实现一部分逻辑是独立事物的, 改如何做? 顺便问下 我有一个文件上传的业务: 保存数据库->保存文件->生成索引. 如何做到一个事物中呢?

展开
收起
小旋风柴进 2016-06-08 09:47:29 2488 0
1 条回答
写回答
取消 提交回答
  • 1:嵌套事务

    JFinal并直接支持嵌套事务,但是可以很容易地实现它。首先在外层事务仍使用JFinal提供的事务方案,然后在内层通过`DbKit.getDataSource().getConnection()`获取连接,自行开启一个新的内部事务。此法有个特别要注意的地方:不能使用`DbKit.getConnection()`来获取连接,此方法获取的是外层事务打开的连接。
    

    2:文件上传业务做成事务

    将这个业务放在JFinal提供的事务之下就可以,注意有异常就让其抛出,JFinal声明式事务可根据异常自动回滚事务。如果使用的是Db.tx(...)不仅可以通过异常回滚回事务,还可以通过return false回滚。如果在事务回滚以外还要做其它的工作例如删除已上传的文件,可以在业务外围加上 try catch, 在有异常时,删除文件及目录,处理干净以后,再次抛出异常或者`return false给 JFinal`
    2019-07-17 19:31:12
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring框架入门 立即下载
用RxSwift写易维护易读的愉悦代码 立即下载
JAVA反射原理以及一些常见的应用 立即下载