交易中关闭连接时会发生什么?

问题描述 投票:0回答:2

我正在使用SQLServer和Springs JtaTransactionManager

给出这样的方法:

@Transactional
public void something() {
    try (final Connection conn1 = getConnection()) {
        //insert/update stuff in database
    }


    try (final Connection conn2 = getConnection()) {
        //insert/update stuff in database
    }
}

此方法实际上是可交易的吗?关闭conn1时所做的更改会发生什么,是否将它们提交到数据库?如果在使用conn2时发生异常,会发生什么情况,是否可以回滚通过封闭连接进行的更改?

java jdbc transactions
2个回答
0
投票

您不应该在@Transactional内部手动加载/获取连接或数据源,尤其是在使用JtaTransactionManager时]

[JtaTransactionManager不需要了解数据源或任何其他特定资源

,因为它使用了容器的全局事务管理基础结构。

0
投票

数据库通常遵循ACID原则:要遵循的一些规则。

© www.soinside.com 2019 - 2024. All rights reserved.