我有这段代码:
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中??
答案 0 :(得分:-2)
它必须经过重构。由于您使用的是新的jar版本,因此无法找到它。您可以尝试使用此代码 -
if(TransactionSynchronizationManager.isActualTransactionActive()){
enter code here
}否则{
未激活
}