0

私の jsf Bean の init メソッドで、データベースからオブジェクトをフェッチするサービスを呼び出しています。休止状態を使用しています。この init メソッドは、フォームに値を事前入力します。ユーザーが編集を行い、送信時に別のメソッドが呼び出されて、編集をキャプチャし、データベース内のそのオブジェクトを更新します。この時点で、init メソッドで取得したデータベース オブジェクトをバッキング Bean のプロパティとして保存したり、jsf Bean で呼び出された submit メソッドで元のデータベース オブジェクトを再度取得したりできます (ただし、これは db/cache への別の呼び出しです)。 )。ここに好ましい方法はありますか?

4

2 に答える 2

0

最初の方法(デタッチされたエンティティを保存し、送信時にマージする)は、特にバージョンフィールド(Java-JPA-@ Versionアノテーションを参照)で使用する場合に、古いエンティティを検出する方法を提供するため、より優れたimoです。

于 2013-03-21T04:58:08.073 に答える
0
  1. 取得したエンティティ インスタンスをセッションに配置します。
  2. を使用して、マップされたすべてのフィールドにフォームフィールドのターゲットを設定しますvalue="#{sessionScope.xxx.xxx}"
  3. 送信時に、セッション内のインスタンスを実行できmergeます。persist
于 2013-03-21T03:37:57.603 に答える