Java 非法尝试将代理与两个打开的会话关联

Java 非法尝试将代理与两个打开的会话关联,java,mysql,hibernate,Java,Mysql,Hibernate,我有一个java应用程序,它使用hibernate连接MySQL数据库。问题是,当我尝试删除任何项目时,会出现以下异常: org.hibernate.HibernateException:非法尝试关联 具有两个开放会话的代理 这是我的删除代码: public void delete(Employee persistentInstance) { log.debug("deleting Employee instance"); try { getCurrentSess

我有一个java应用程序,它使用hibernate连接MySQL数据库。问题是,当我尝试删除任何项目时,会出现以下异常:

org.hibernate.HibernateException:非法尝试关联 具有两个开放会话的代理

这是我的删除代码:

public void delete(Employee persistentInstance) {
    log.debug("deleting Employee instance");
    try {
        getCurrentSession().delete(persistentInstance);
        log.debug("delete successful");
    } catch (RuntimeException re) {
        log.error("delete failed", re);
        throw re;
    }
}

有人能帮我吗?

请确保您正确管理了会话。完成Hibernate会话后,应将其关闭

我怀疑您在一个未关闭的会话中加载员工,只是为了在另一个会话中尝试删除它。

修改代码如下:

getCurrentSession().delete(persistentInstanceDAO.getById(persistentInstance.Id();

按id从数据库中提取对象,该id将在删除前用当前hibernate会话刷新Employee对象。

是否尝试搜索异常?似乎很容易修复