在成功提交后,在Derby中回滚正在进行的事务(可保留结果集)会发生什么?

时间:2012-03-11 18:44:55

标签: java jdbc derby

如果我没有关闭Derby中的开放ResultSet并且连接使用ResultSet.HOLD_CURSORS_OVER_COMMIT来保持,那么如果我打电话会发生什么:

connection.commit();
connection.rollback();

一旦我明确提交了当前的交易,是否存在调用rollback()的风险?我问,因为我发现在关闭连接之前我总是要调用rollback(),否则我会得到例外:

java.sql.SQLException: Cannot close a connection while a transaction is still active.

1 个答案:

答案 0 :(得分:1)

如果未对数据库执行任何更改,则调用rollback()是完全合法的。

实际上,我一直在回滚()只读事务。