1

私の grails アプリケーションでは、数千のレコードを更新するストアド プロシージャを呼び出しています。stored-proc 呼び出しの後、これらのレコードの多くを json 形式で UI に送り返す必要があります。ただし、ストアド プロシージャが完了した後も、休止状態は引き続き古いオブジェクトを参照します。これらのオブジェクトのそれぞれで evict() を試し、HQL を使用して再度ロードしましたが、役に立ちませんでした。

この問題から抜け出す最善の方法は何ですか。

4

1 に答える 1

2

答えは質問にあります。:) を使用しrefresh()ます。これを参照してください。

ハイバネート セッションを完全にクリアしたい場合は、 を使用できますsession.clear()clearを参照してください。そのためには、現在のセッションを取得する必要があります。これは、次の 2 つの方法で行います。

  1. を手sessionFactoryに入れ、現在のセッションを取得し、同じものをクリアします。 grailsApplication.mainContext.sessionFactory.currentSession.clear()

  2. withSession閉鎖 を使用してください。

    DomainABC.withSession{s-> s.clear()}

于 2013-07-19T03:47:24.527 に答える