首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
请问是事物没有生效,还是我代码有问题呢
zb99908
2019-05-24 20:56
我想知道,是我代码有问题,还是有其他问题,如果事物是生效的,我这个代码逻辑有问题吗?
看了官方文档,要求数据库必须是
InnoDB,我查了一下,数据库和表使用的都是
InnoDB,想知道问题出在哪里呢
项目:
JFinal
评论区
JFinal
2019-05-24 22:02
单步调试进入 Db.tx 内部,看 connection.rollback() 这个回滚被执行没有
在 Db.tx 内部设置断点先
回复
zb99908
2019-05-25 18:47
昨天和JFinal群友问了一下,说应该是因为不是一个线程导致的,因为我的这个类是new出来的,现在修改为在方法上加 @Before(Tx.class)注解,但是情况也是一样,手机端调用扣券的接口两次,这里偶尔也会扣券两次成功
回复
zb99908
2019-05-25 18:52
我把几乎把个方法使用try{}catch包裹起来了,如果有异常会捕获,然后再抛出RuntimeException异常,这样会有影响吗,
回复
zb99908
2019-05-25 19:42
找了一下应该是没有使用 Enhancer.enhance() 的缘故,在文档里面貌似没有看到这个类,通过搜索查出来的,不知道这种方式是否可行..... private RemoteChargeOrderServer remoteChargeOrderServer = Enhancer.enhance(RemoteChargeOrderServerImpl.class);
@Before(Tx.class)
remoteChargeOrderServer .confirmConsumeOrder(){.......}
回复
JFinal
2019-05-26 10:48
@zb99908
Db.tx 是直接支持事务的,不而要 Enhancer.enhance()
Db.tx 是无需拦截器就支持了事务,注意看文档
还是要 单步调试进入 Db.tx 内部,看 connection.rollback() 这个回滚被执行没有
在 Db.tx 内部设置断点先
回复
pfjia
2019-05-26 16:37
你好,能把confirmConsumeOrder方法的全部代码贴出来吗?
回复
发送
我要反馈
热门反馈
扫码入社
在 Db.tx 内部设置断点先