1

私のアプリケーションはデータベースとして hsql を使用しています。今まで問題なく動作していました。プロダクションでは、例外 org.hibernate.SerializationException could not deserialize EOF 例外が発生しました。コードで例外が適切にキャッチされていないため、完全なスタック トレースを取得できませんでした。

また、この例外の原因となった正確な一連のイベントもありません。Tomcat と hql を再起動すると、問題はなくなりました。

あいまいで申し訳ありませんが、根本原因の分析について助けが必要です。ここで何が問題だったのでしょうか?

validateSession();
        Session session = SessionFactory.getInstance(SessionContext.DISTRIBUTED).getSession();
        session.beginTransaction();
        List results;
        try {
            Criteria cri = session.createCriteria(Filter.class);
            cri.add(Restrictions.eq( "user", userVO.user() ));
            setLazyMode(cri);
            results = cri.list();
            session.getTransaction().commit();
        } finally {
            rollbackIfStillOpen(session);
        }
4

1 に答える 1

0

それがあなたを助けるかどうかはわかりませんが、私は同じ問題を抱えていて、ゲッターではなくメンバーの上に@Idを持っていたようです...

休止状態の例外メッセージは非常に貧弱だと思います。問題を特定するために、特別なテスト ケースをデバッグして作成する必要がありました。Hibernate が「ID が見つかりません」と述べるのはそれほど困難だったでしょうか。注釈またはマッピングされていますか? メンバーの代わりにゲッターに注釈を付けます。

これにより、なぜ1回はゲッターに、もう1回はメンバーに配置する必要があるのか​​ わかりません.メンバーまたはゲッターにすべてを配置しないのはなぜですか?? ゲッターとメンバーの両方が互いにリンクされているのに、なぜこのがらくたなのですか?

于 2013-06-18T14:14:53.193 に答える