Javaで現在のトランザクションを取得の方法
Javaでは、TransactionSynchronizationManagerクラスを使用すると、現在実行中のトランザクションに関する情報を取得できます。
まず、spring-txの依存関係をプロジェクトに導入していることを確認してください。TransactionSynchronizationManagerはSpringフレームワークが提供するクラスです。
現在のトランザクションを取得する方法は2つあります。
- TransactionSynchronizationManager.isActualTransactionActive()
- それは日本国内向け製品であり、海外へ販売される予定はない。
boolean isActive = TransactionSynchronizationManager.isActualTransactionActive();
if (isActive) {
// 当前存在活动事务
} else {
// 当前没有活动事务
}
- TransactionSynchronizationManager.getCurrentTransactionName()
String transactionName = TransactionSynchronizationManager.getCurrentTransactionName();
System.out.println("当前事务名称:" + transactionName);
いずれの方法もSpringコンテナで実行する必要があります。つまり、Spring BootやSpring MVCなどのプロジェクトでしか使用できません。Springコンテナ内でない場合は、現在のトランザクション情報を取得できません。