show的Hibernate错误是Transaction处于活动状态

时间:2016-01-20 11:28:32

标签: java hibernate

我有这段代码:

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
...
public void commitTransaction() throws PersistenceException {
    Transaction t = (Transaction) transaction.get();
    if (t == null) {
        throw new PersistenceException("Pas de transaction ouverte");
    } else if (!t.isActive()) {
        throw new PersistenceException("Transaction déjà fermée");
    }
    t.commit();
    transaction.set(null);
    closeSession();
}

但我在这一行中有错误:

...} else if (!t.isActive()) {...

消息错误:

  

方法isActive()未定义类型Transaction

我使用hibernate-core-5.0.7.Final.jar

当我查看interface Transaction时,没有函数isActive()为什么会出现在旧版本的hibernate-core中??

1 个答案:

答案 0 :(得分:-2)

它必须经过重构。由于您使用的是新的jar版本,因此无法找到它。您可以尝试使用此代码 -

if(TransactionSynchronizationManager.isActualTransactionActive()){ enter code here

}否则{

未激活
}