【问题标题】:Hibernate error for show is Transaction is active [duplicate]显示的休眠错误是事务处于活动状态[重复]
【发布时间】:2016-01-20 11:28:31
【问题描述】:

我有这个代码:

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 中..?

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    它一定被重构了。由于您使用的是新的 jar 版本,因此您无法找到它。您可以尝试使用此代码 -

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

    }其他{

    未激活
    }

    【讨论】:

    • TransactionSynchronizationManager 用于 Spring ..??
    • 我看到你正在寻找休眠。您必须使用会话对象来查询 session.getTransaction().isActive()。
    猜你喜欢
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多