我使用对象/关系映射程序与数据库对话。在我的例子中,库是iBatis,它也用于事务管理。然而,我最近遇到了一个案例,即iBatis并没有真正启动一个事务,即使startTransaction()等被称为记录在案。经过一些调试后,我发现我的侧出现了一个配置错误。
startTransaction()
人们可能会责怪iBatis,但我希望在将来避免这种误解。所以问题是:
如何以编程方式断言当前数据库连接正在事务中运行?
我使用的数据库是Oracle、MySQL和H2 (用于测试)。
发布于 2010-01-18 23:30:46
我不能百分之百确定这是否绝对意味着处于tx中,但是Connection.getAutoCommit()告诉您连接是否处于自动提交模式,其中自动提交"on“意味着”无事务“。
在某些情况下,这种断言可能不成立,但大多数基于JDBC的框架将使用该设置来控制事务。
https://stackoverflow.com/questions/2089854
相似问题