2016-04-07 5 views
1

Criteriaが作成され、が空でないことを選択したとします。値リスト。その後、criteria.list().get(0)が呼び出され、いくつかの関数から戻ります。この要素がさらなるコールチェーンに存在することは明らかですが、他のリスト要素はどうですか?彼らはいつ再評価されますか?休止状態のセッションが終了するか、いつですか?いつ休止状態のエンティティのリストを解放しますか?

+0

なぜ最大で1レコードしか選択しないのですか?トランザクションが終了しエンティティが切り離されると、それらはメモリから解放されます。 – tak3shi

+0

長時間実行しているセッションやメモリキャッシュを使用していますか? – tak3shi

+0

「なぜあなたは1レコードの最大値だけを選択していないのですか」あなたは絶対に正しいですが、質問は「ベストプラクティス」ではなく「どのように動作するのか」ではありません。 :) – Cherry

答えて

0

あなたがSessionないStatelessSessionを使用していると仮定すると、L1キャッシュは、いくつかの条件でクリアされます。

  • セッションがある

    を閉じました。
  • session.clear()がアクティブsessionインスタンスで呼び出された場合。

エンティティインスタンスをsession.evict(Object object)に渡すことで、特定のエンティティを管理するオープンsessionで個別に管理対象エンティティのインスタンスをクリアすることもできます。