如何在方法结束时关闭连接

How to close connection at the end of method

你好我想问一下如何在方法结束时关闭连接,同时调用第二个方法。

@Transactional(value = "transactionManagerDC")
public void Execute()
{
     // 1. select from DB - took 2 min
     ExecuteAPI()

}; 

public void ExecuteAPI()
{
  // API CALL

}; 

但较长的 API 调用保持事务打开并进入理想状态并终止。如何在 API 调用方法之前提交和关闭事务。

finally {
        if (session != null && session.isOpen()) {
            session.close();
        }
    }

当使用@Transactional 注释声明事务时,当程序从注释方法控制returns 时,事务将结束(提交或回滚),正常情况下或发生异常时。

为了更好地控制事务执行,我会注入一个 PlatformTransactionManager 并以编程方式使用 TransactionTemplate 而不是这种声明式方法。

这是关于对交易进行编程控制的相当不错的教程: https://www.baeldung.com/spring-programmatic-transaction-management


在您的示例中,您想在 API 调用之前结束事务,基本上是在选择数据之后。我不明白为什么首先需要交易。