0

JSFとPrimeFacesを使用してWebサイトを開発しています。開発時に、どの Web アプリケーションにも 2 つのボトルネックがあることに気付きました。私が間違っている場合は修正してください。

ボトルネックは次のとおりです。

  1. 永続化レイヤーに Hibernate フレームワークを使用しました。データベースで変更が発生した場合、それをスコープ Bean に反映する方法はありません。Hibernate には動的更新属性があり、[永続化時に] テーブルの影響を受けるレコードのみを更新するのに役立ちます。しかし、常に更新されたDAOを取得できる同様のメカニズムは見つかりませんでした。session.refresh()ここで、開発者は、データベース テーブルからオブジェクト ツリー全体を再ロードするだけのメソッドを使用して、それらを更新する責任を負う必要があり ます。したがって、小さなデータベースの変更ごとに、セッションキャッシュから削除されるたびに [Hibernate の] DAO のキャッシュ機能が失われると思います。つまり、データベースの更新は DAO の更新をトリガーしません。

  2. DAO を更新した後、変更をビュー レベルに反映させたい場合は、Primeface ソケット [PrimePush] を使用する必要がありました。これは、毎回ページを更新するのは適切な実装ではなく、primeface ソケットを使用すると特定の ID を更新できるためです。つまり、DAO フィールドごとに、それぞれ固有のチャネルを持つさまざまな Primeface ソケットを利用する必要があります。また、これらの異なるソケットへのメッセージの送信は、開発者が Bean コードで行う必要があります。

では、問題は、これらを効率的に処理するにはどうすればよいかということです。開発者が心配する必要がないように、これらの問題を処理する他のテクノロジ/フレームワークはありますか?

4

1 に答える 1

0

理想的には、次のようにする必要があります。

Hibernate Persistence Layer (DAO に CRUD 操作を実行させる)

DAO にアクセスするマネージド Bean

View を更新する BackBean を使用した View (Primefaces)。

PrimePush などは必要ありません。ビュー内のアクションによって更新する必要があります

于 2013-05-14T12:18:32.537 に答える