2011-07-28 8 views
0

私はejb3とjsfを使ってWebアプリケーションを開発しています。 jsfマネージドBeanのjpaエンティティを操作したい。ノーマリーときに私はマネージドビーンズで私のエンティティを使用して私はLazyInitializationExceptionsを得るので、彼らはWebコンテナに入るときに切り離されます。永続コンテキストをHibernateとJSFのWebモジュールに拡張する方法

この問題を解決するにはベストプラクティスがありますか?

私はOpenSessionInViewパターンを使うことができるので、私はJSFで開いている休止状態のセッションを持っています。それは私が単にmyEntitiy.setSomething(...)を使用することができ、それがデータベースに永続化されることを意味しますか?

挨拶、 Laures

答えて

0

は、私は強く、あなたがそれをhereを見つけることができます、あなたがシームを見てお勧めします。

私がシームに切り替える最大の理由の1つはこれでした。

1

OpenSessionInViewを使用している場合。 "myEntitiy.setSomething(...)"を呼び出すと、そのセッション内の値だけが変更されます。オブジェクトを後で使用するために保存する場合は、そのオブジェクトを保持する必要があります。

トランザクションが開始され、そのビジネス層内ですべてのjpa操作が処理される「buisinessレイヤー」を作成することをお勧めします。つまり、すべてのビジネスメソッドが独自のトランザクション内にあり、上記のGUIレイヤーに指定されたサービスを提供します。

関連する問題