关于JFinal事务回滚及Service层事务回滚问题
@JFinal 波总,今天用最新版2.2写了一段事务回滚的代码,结果事务没有进行回滚,关于JFinal的事务回滚,虽然看了文档,但是一直有种模糊的感觉。以下是我的测试代码(我的两个表都是InnoDB引擎):
Controller:
public class TestController extends Controller { public void index(){ BlogService blogService = Duang.duang(BlogService.class,Tx.class); boolean isSuc = blogService.save("1"); renderText("Test:"+isSuc); } }
public class BlogService { @Before(Tx.class) public boolean save(){ boolean succeed = Db.tx(new IAtom(){ public boolean run() throws SQLException { Test test = new Test(); Blog blog = new Blog(); test.set("test", "测试事务"); blog.set("blogtitle", "测试事务标题一定要长测试事务标题一定要长测试事务标题一定要长测试事务标题一定要长").set("blogtime", "2016-05-05"); boolean testSuc = test.save(); boolean blogSuc = blog.save(); return testSuc && blogSuc; } }); return succeed; } @Before(Tx.class) public boolean save(String param){ try{ Test test = new Test(); Blog blog = new Blog(); test.set("test", "测试事务"); blog.set("blogtitle", "测试事务标题一定要长测试事务标题一定要长测试事务标题一定要长测试事务标题一定要长").set("blogtime", "2016-05-05"); boolean testSuc = test.save(); boolean blogSuc = blog.save(); return testSuc && blogSuc; }catch(Exception e){ e.printStackTrace(); } return false; } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
还是
@jfinal 回答专业。 第一个是嵌套了2个事务方法
如果我不进行try catch,那save(String param)方法报错,页面进入500错误页面,这种情况怎么处理呢?事务回滚之后肯定也是要有友好提示啊。
第二个当然是不会回滚 你都try,catch异常,就表示 对于事务来说内部代码忽略这个异常,等于没有异常,没有异常当然不会滚 这个是基础,不是jfinal的问题
"完全有必要弄成三层,但愿在这里只是个测试" 应该是"完全没有必要..."吧