さて、最初に理解する必要があるのは、Vaadinが従来の要求/応答Webフレームワークとは異なることです。実際、Vaadinは*イベント駆動型です * Swingと非常によく似たフレームワーク。ユーザーの最初のクリックからアプリケーションコンテキストを構築し、Webサイトへのアクセス全体にわたってそれを保持します。問題は、Hibernateセッションを開始できるエントリ要求ポイントがなく、閉じる応答ポイントがないことです。ボタンを1回クリックするだけで、大量のリクエストが発生します。
したがって、 entitymanager-per-request パターンは完全に役に立たない。 1つのスタンドアロンemまたはセッションごとのemを使用することをお勧めします 接続プールを低く保つためのhibernate.connection_releaseafter_transactionを使用したパターン。
JPAContianerにとっては、コンテナーを更新する必要がある場合、またはリレーションを使用してBeanを処理する必要がある場合は使用できません。また、バッチロードで動作させることができなかったため、エントリまたはリレーションのすべての読み取りは、DBに対する1つの選択に相当します。遅延読み込みはサポートしていません。
必要なのはオープンEM/セッションだけです。提案されたパターンを使用するか、トランザクションごとにEM /セッションを開いて、最初にBeanをマージしてみてください。
あなたの質問は非常に複雑で答えるのが難しいですが、これらのリンクがあなたが入るのに役立つことを願っています:
休止状態のPojoバインディング戦略
https://vaadin.com/forum#!/thread/39712
MVP-lite
https://vaadin.com/directory#addon/mvp-lite (イベント駆動型パターンに固執する)