我对模型层很陌生只需要在我们的代码中澄清如果autocommit是假的
Connection conn = DBUtil.getConnection(userDb);
conn.setAutoCommit(false);
我们得到一个与postgres无关的异常,如
if (response.getValue() != null) {
conn.commit();
}
如果响应对象是任意值,那么事务是否会在postgres中自动回滚。
谢谢
答案 0 :(得分:2)
这取决于。如果关闭连接,则应由数据库回滚事务。如果您正在使用连接池,则在返回连接时,池应回滚事务。
然而,这可能取决于驱动程序以及连接池,因此您应该明确地执行提交和回滚,而不是依赖于驱动程序或池。
答案 1 :(得分:1)
可以肯定的是,明确地更好地回滚事务:
if (response.getValue() != null) {
conn.commit();
}
else {
conn.rollback();
}