4
回答
jfinal事务必须要主动抛出异常才能回滚吗?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

事务不能回滚,能插入4条,spring不用主动抛出就能回滚啊!

举报
小99
发帖于4年前 4回/697阅
共有4个答案 最后回答: 4年前

JFinal如果你把异常捕获了,事务就失效了。

--- 共有 1 条评论 ---
小99但是现在我没有捕获,只是用1/0测试一下,按道理说应该回滚啊?spring像这样就会回滚的啊! 4年前 回复

不是主动抛 ,是对特定异常 起反应 。如:ActiveRecordException 。sql 错误 ,sql 插入失败。

不是对任何异常 都 回滚。

程序上的 逻辑异常 需要你 自己处理 。确保程序不中断。

--- 共有 1 条评论 ---
小99我从spring这里转过来的,思路还偏向于spring,像这种情况spring就会自动回滚的啊! 4年前 回复
拦截器只能用在controller上
--- 共有 11 条评论 ---
酱油回复 @JFinal : 其实我一直有个疑问,你提倡不要再controller中写业务逻辑,那为什么却在controller做注解事务呢?而且还只能在controller,其他地方只能代码写事务 3年前 回复
JFinal回复 @小99 : demo很简单所以只有单表单操作,业务不仅仅是sql,你要解决的领域问题都属于业务。业务不能放在控制层,要放在Model或业务层 4年前 回复
小99回复 @JFinal : 波总您好!我下载了1.6的demo,看了,里面也是单表的操作,您所说的业务是sql书写的位置吗?把sql写在model中,我现在也是这么做的!那么上图中我那个保存6张表的操作挪到控制层就行了吧!view——controller——model(数据库操作) 4年前 回复
小99好,我去看看,谢谢波总 4年前 回复
JFinal回复 @小99 : 千万不要直接在controller中写业务逻辑,这样不利于代码重用与维护,群里是有人在误导你,jfinal-1.6-demo 中有明确的说明业务该写在哪里 4年前 回复
顶部