如果 postgres 中的 autocommit 为 false,事务将自动回滚

If autocommit is false in postgres will transaction be automatically roll backed

我对模型层还很陌生,只是需要澄清一下,如果自动提交是假的,比如

,在我们的代码中
Connection conn = DBUtil.getConnection(userDb);
conn.setAutoCommit(false);

我们得到一个与 postgres 无关的异常,例如

if (response.getValue() != null) {   
    conn.commit();
}

当response对象为任意值时,postgres中事务是否自动回滚

谢谢

视情况而定。如果连接关闭,则事务应由数据库回滚。如果您使用的是连接池,当连接返回时,事务应该由池回滚。

但这可能取决于驱动程序以及连接池,因此您应该明确地执行提交和回滚,而不是依赖驱动程序或连接池。

可以肯定的是,明确回滚事务更好:

if (response.getValue() != null) {   
    conn.commit();
}
else {
    conn.rollback();
}