我正在使用对象/关系映射器与数据库对话。我的图书馆是iBatis这也用于事务管理。
然而,我最近有一个案例,即使 startTransaction()
等被称为 documented,iBatis 并没有真正开始一个事务。 .
经过一番调试,我发现是我这边的配置错误。
有人可能会责怪 iBatis,但我想在未来避免这样的误解。 那么问题来了:
我如何以编程方式断言当前数据库连接正在事务中运行?
我使用的数据库是 Oracle、MySQL 和 H2 (用于测试)。
最佳答案
我不是 100% 确定这是否绝对表示在 tx 中,但是 Connection.getAutoCommit()告诉您连接是否处于自动提交模式,其中自动提交“开启”表示“无事务”。
很可能存在此断言不成立的情况,但大多数基于 JDBC 的框架将使用该设置来控制事务。
关于java - 如何断言数据库连接在事务中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2089854/