Jfinal的ActiveRecordPlugin的事务怎么会设计成这样?

abcbuzhiming 发布于 2017/05/17 23:22
阅读 303
收藏 0

@JFinal 波总我是刚刚接触Jfinal。看到ActiveRecordPlugin可以单独用很高兴,想直接用在自己的小项目上,结果遇到坑了:声明式事务不能用在action(controller)以外的方法上;好吧我用Db的编程型事务,结果整个过程中只能返回一个布尔值啊。。。这。。。我完全无法理解啊,Jfinal的demo里明确说要有service层,sql操作不要放在controller里,怎么声明式事务只能支持controller呢?然后备用的Db.tx()编程式事务,整个事务执行过程中的代码和外部是隔离的,我想返回个事务中产生的值都很难。。。

希望能解个惑吧,尤其是声明式事务设定的太奇怪的,这东西理论上难道不应该弄成放在哪里哪里就有效吗

加载中
0
JFinal
JFinal

声明式事务可以用在业务层,而且建议用在业务层,用一下业务层 AOP 就好,看一下 jfinal 手册有关 AOP 的那个章节,Tx 拦截器是可以直接用在业务层的

1
铂金蛋蛋
铂金蛋蛋

如果不是在controller中使用事务,可以用Enhancer.enhance(Class,Interceptor) 将Tx拦截器作用在你的class上,然后使用enhance后的对象就可以了

0
abcbuzhiming
abcbuzhiming

引用来自“JFinal”的评论

声明式事务可以用在业务层,而且建议用在业和层,用一下业务层 AOP 就好,看一下 jfinal 手册有关 AOP 的那个章节,Tx 拦截器是可以直接用在业务层的

了解了

返回顶部
顶部