关于jfinal事务的问题

我现在做个项目开发,因为涉及到就项目的部分东西,需要操作两个数据库,配置了两个数据源  一个默认的  一个是起别名 : msSql ,我想知道如果是声明式事务的话  我怎么指定为 msSql 这个数据源开启事务,   如果是 Db.use("msSql").tx   的这个我已经知道怎么用了   就想搞明白声明式事务的怎么弄

评论区

lyh061619

2018-01-10 11:23

直接进去看源码就好了,关于声明工事物这块的源很简单的一看就懂了;使用声明式事物如果数据支持事物的话是自动开启的,JFinall默认事物级别为4(TRANSACTION_REPEATABLE_READ),如果使用数据库不支持这个级别事物,在自己的配置中配置ActiveRecordPlugin同时重新指定下下相应的级别就好了。

lyh061619

2018-01-10 11:26

另外使用问题,建议你看下手册第五章节5.6小节点看下声明式事物的用法。

无聊2356

2018-01-10 11:48

@lyh061619 我想你应该是没看懂我的问题,声明式事务我现在能够开,但是我链接的是两个数据源,开启了声明式事务的只是默认的那个数据源,但是我要指定到另外一个数据源去,重点是指定到另外一个数据源

lyh061619

2018-01-10 12:50

那你既然Db.tx(()->{});控制事物就直用Db.tx()控制了。再想深究看这个贴:http://www.jfinal.com/feedback/450,然后把问题反馈给波总。

lyh061619

2018-01-10 12:57

另外建议你用别的办法解决这个问题,比如分布式事物锁等等解决,JFinal本身提供的方案不满足就跳出这个思维另找方案,或使用第三方中间件如:MyCat等也是做多数据源配置也是可以解决你这个问题的。

lyh061619

2018-01-10 13:01

建议你引用数据库中间件解决,解决问题思维多多转变,有句话说得好:办法总比困难多。^_^!!

热门反馈

扫码入社