0

1 対 1 または 1 対多の関係で他の多くのテーブルに関連付けられているテーブルがあります。これらのテーブルを で更新しているsession.update(Parent_Table)ときに、次の例外が発生します。

org.hibernate.HibernateException: コレクションを 2 つの開いているセッションに関連付けようとする不正な試み

更新方法:

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)

2 つの異なるセッションがどのように作成されているのかわかりません。updateステートメントの前に既存のセッションを閉じて新しいセッションを開いても、同じ例外が発生します。

ここで何がうまくいかないのか、誰かが提案できますか?

4

1 に答える 1