Java HibernateeException:在调用session.update()时非法尝试将集合与两个打开的会话关联

Java HibernateeException:在调用session.update()时非法尝试将集合与两个打开的会话关联,java,hibernate,hibernate-mapping,Java,Hibernate,Hibernate Mapping,我有一个表,它与许多其他表关联,或者是一对一关系,或者是一对多关系。当使用session.update(Parent_Table)更新这些表时,我得到以下异常 org.hibernate.HibernateException:非法尝试将集合与两个打开的会话关联 更新方法: public static String update(ParentTable table) throws Exception { Session session = HibernateUtil.getS

我有一个表,它与许多其他表关联,或者是一对一关系,或者是一对多关系。当使用
session.update(Parent_Table)
更新这些表时,我得到以下异常

org.hibernate.HibernateException:非法尝试将集合与两个打开的会话关联

更新方法:

public static String update(ParentTable table)  throws Exception {      
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    try {
        session.beginTransaction();
        session.update(table);
        session.getTransaction().commit();
        return success;
    } catch (Exception e) {
        session.getTransaction().rollback();
        e.printStackTrace();
        return failure;
    }
}
在这里,我添加新的子记录并使它们与父表关联,或者修改现有的父或子记录,并将父表传递给
session.update(table)

不知道如何创建两个不同的会话。即使在update语句之前关闭现有会话并打开新会话,也会得到相同的异常


有人能提出这里可能出现的问题吗?

您使用的是什么框架和容器?什么版本

你用这样的东西吗

 <filter>
  <filter-name>OSIV</filter-name>
  <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>OSIV</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

奥西夫
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
奥西夫
/*
spring-jpa-config.xml

<bean name="openSessionInViewInterceptor"
        class="org.springframework.orm.hibernate4.support.OpenSessionInViewInterceptor">
        <property name="sessionFactory" ref="sessionFactory" />
</bean>


您使用@Transactional?-也可以创建新会话。

异常表明parenttable的对象图中包含的集合已与另一个hibernate会话关联。另一个会话读取了parenttable的明显结论。尝试在SO或google上搜索邮件。因此,它带来了49个结果。你看了吗?@nakosspy,我已经看了大部分案例,所以选择了正确的答案。似乎与我的情况无关。好的,您确定用于读取表对象的会话未打开吗?我尝试执行的操作是在通过getCurrentSession()获得的会话中进行更新。甚至我也尝试过在更新之前关闭所有打开的会话并创建一个新会话,但结果是一样的。您如何配置SessionFactory本身?