2019-12-25 15:10

@JFinal 好的谢谢波总的解答,不过我还是觉得开启事务和设置事务的隔离级别是两个事情,并不是在开启事务的情况下才去应用事务的隔离级别

2019-12-25 14:50

@JFinal arp.setTransactionLevel(XXX);不是用来设置jdbc全局事务级别的吗?说白了我只是查询,没有任何事务的回滚也需要使用Db.tx去更改事务级别,而 arp.setTransactionLevel(XXX)更改不了

2019-12-25 14:47

@JFinal 比如我就要读取别的事务未提交的数据,就要以TRANSACTION_READ_UNCOMMITTED级别去执行sql语句

2019-12-25 14:45

@杜福忠 也许不是这个问题,我的使用场景有点特殊

2019-12-25 14:44

@JFinal 我并没有要使用事务,我只是要以某个事务级别去执行sql语句

2019-12-25 14:43

@JFinal 而且这也是使用@Before(Tx.class) 才会生效,如果没有使用拦截器 arp设置的事务级别也不会生效

2019-12-25 14:41

@JFinal 我是使用单独的activerecord没有Tx.java 这个类

2019-12-25 14:25

@JFinal 这块应该是一个bug

2019-12-25 14:24

@JFinal com.jfinal.plugin.activerecord.Config 这个类

2019-12-25 14:24

@JFinal 我在config.java 里面的getConnection() 方法 return 之前加了一行代码conn.setTransactionIsolation(this.transactionLevel);问题得到了解决,所以我觉得这块是有问题的

2019-12-25 14:19

@JFinal 我看了源码,在获取conn连接的时候并没有设置事务级别,所以conn.getTransactionIsolation()返回的都是mysql的默认级别,除非使用Db.tx 这样是生效的,否则arp设置的其他级别都不会生效

2019-12-24 15:19

@杜福忠 关了缓存还是不行