@Before(Tx.class) 似乎没有生效?

未曾去过的地方 发布于 2016/06/17 11:26
阅读 345
收藏 0

@JFinal 你好,想跟你请教个问题:

我有两个BaseModel , A和B.

A里的方法save上加了@Before(Tx.class) 。save方法内部对a表入库操作成功后,会调用B的入库方法失败了,这时候A表的数据没有回滚。

我查看了数据库的存储引擎,是InnoDB的。

大神帮忙看下,是不是少了什么配置或者 用法错误呀?

加载中
0
JFinal
JFinal
   这属于业务层 AOP,使用了 Duang.duang 增强过没有? 手册中有详细说明业务层 AOP 如何触发,在此下载:http://www.jfinal.com
未曾去过的地方
未曾去过的地方
好的谢谢,我试试啊。
0
未曾去过的地方
未曾去过的地方

引用来自“JFinal”的评论

   这属于业务层 AOP,使用了 Duang.duang 增强过没有? 手册中有详细说明业务层 AOP 如何触发,在此下载:http://www.jfinal.com

@Jfinal 追问一下啊:

我分别在Model a 和 model B那里定义:
public static final A dao = Duang.duang(new A());

public static final B dao = Duang.duang(new B());

然后想在一个事物里,对a和b都做操作,比如a.update(), Db.save(),b.update()之类的方法。这样的功能,事务能实现吗?我试了下是不行的啊。。

未曾去过的地方
未曾去过的地方
回复 @JFinal : 或者类似这样,两个表的事务,有没有范例可以参考借鉴呀?不胜感激!
未曾去过的地方
未曾去过的地方
回复 @JFinal : 抱歉再追问下哈。我在业务层使用事务控制,分别调用两个表的model操作两个表,事务能够生效吗? 另外,事务能对Db.xxx方法也能够生效吗?
JFinal
JFinal
回复 @未曾去过的地方 : 强烈建议使用单独的业务层,事务在业务层去用,Model 只做为一个通用的容器,里面再添加一点与自身状态判断有关的代码即可。
未曾去过的地方
未曾去过的地方
总结下,就是,同一个事务里,对不同表的操作。
返回顶部
顶部