2016-03-31 13 views
0

私はマルチページフォームを持っています。エンドユーザーは、各ページデータをDBに保存しなければならない複数の画面に移動する必要があります。私は、ユーザーが画面内を前後にナビゲートしようとするたびに再利用できるように、クエリと結果をキャッシュすることを検討しています。 私はこのためにハイバネート2レベルキャッシュを有効にしようとしており、結果とクエリをキャッシュしています。 これは良い習慣ですか? 推奨されていない場合は、このアプローチから離れてください。 提案がありますか?私は、アプリケーションに関する作っていマルチページフォーム用のHibernate第2レベルのキャッシュ

+0

これは、複数のフォームで詳細を取得し、ユーザーがデータを入力する際に​​前後にナビゲートできるアプリケーションのようなものです。ユーザーがウィザードフローを完了してデータを入力すると、同じウィザードフローに戻り、データを更新する可能性があります。私にとっては、一度の活動のように見え、一度ユーザーが完了すると、そのデータを頻繁に更新することはありません(つまり、10〜15分ごとというわけではありません)。これらの正当な前提はありますか? –

答えて

1

少数の仮定:

  1. これは、データを入力しながら、複数のフォームとユーザーを介してユーザの詳細はあちこちに移動することができ、GUIのWebアプリのウィザードの種類、のように見えます。
  2. このデータは、ユーザー固有のものです。私はHttpSession又はConversation範囲内でこのデータを格納することを好むだろう、と仮定する

(例えばsession scoped action forms or @ConverstaionScopedフレームワークJSF /ストラット) etc rather thanに応じて第二レベルcache`に休止。ある

理由、

  1. 2番目のレベルのキャッシュでは、頻繁にアクセスされるデータ(ホットデータ)をアプリケーション全体(ユーザー固有ではない)に保つと、DBのラウンドトリップやパフォーマンスが向上します。
  2. ユーザー固有のデータなので、各ユーザーは自分自身のHttpSessionオブジェクトに関連付けられているので、HttpSessionはこのデータを格納するのに適しています。
+1

私は@ConversationScopedを指摘します - ウィザードはこのスコープのための正確なユースケースです。 –

+0

@Flavius私はそれに同意し、それを言及する価値があるでしょう。 –

関連する問題