且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何判断事务在 Java EE 6 拦截器中是否处于活动状态?

更新时间:2023-12-03 17:32:34

你可以注入一个 TransactionSynchronizationRegistry 并使用 getTransactionStatus获取当前上下文中事务的状态,它返回一个 int,它是 Status 类,在您的情况下,您正在寻找 STATUS_NO_TRANSACTION

You can inject a TransactionSynchronizationRegistry and use getTransactionStatus to get the status of the transaction in the current context, it returns an int which is a contant in the Status class, in your case you are looking for STATUS_NO_TRANSACTION

注入:

@Resource
TransactionSynchronizationRegistry tsr;

检查交易状态:

if (Status.STATUS_NO_TRANSACTION == tsr.getTransactionStatus()) {
   // no transaction
}