2

以下は私のコードです

@SuppressWarnings("unchecked")
protected List<String> executeTestQuery(final String query)
{
    List<String> ret;

    Session session = factory.openSession();
       try
    {
          ret = session.createQuery(query).list();//HANGS
     }
    finally
    {

        session.flush();

       session.close();

    }
    return ret;
}

上記のメソッドは、すべてのメソッドから呼び出される一般的なメソッドであり、場合によっては再帰的にも呼び出されます。
数回実行した後、Hibernate が前述のポイントでハングします。
私も追加しました
config.setProperty(Environment.C3P0_MAX_SIZE, "100");
session.clear(), SessionFactoryUtils.releaseSession(session, factory);
まだ役に立たない.
上記の問題に対する提案は非常に役立ちます。

4

2 に答える 2

2

皆さんの助けに感謝します。ついに問題は解決しました。上記の機能に問題はありませんでした。問題は呼び出し元の関数にあり、そのセッションは決して閉じられませんでした。session.flushとsession.closeが問題を解決しました。

于 2012-10-11T19:09:50.307 に答える
0

SessionFactory の getCurrentSession() を使ってみてください。

于 2012-10-09T11:21:33.460 に答える