私の jsf Bean の init メソッドで、データベースからオブジェクトをフェッチするサービスを呼び出しています。休止状態を使用しています。この init メソッドは、フォームに値を事前入力します。ユーザーが編集を行い、送信時に別のメソッドが呼び出されて、編集をキャプチャし、データベース内のそのオブジェクトを更新します。この時点で、init メソッドで取得したデータベース オブジェクトをバッキング Bean のプロパティとして保存したり、jsf Bean で呼び出された submit メソッドで元のデータベース オブジェクトを再度取得したりできます (ただし、これは db/cache への別の呼び出しです)。 )。ここに好ましい方法はありますか?
2 に答える
0
最初の方法(デタッチされたエンティティを保存し、送信時にマージする)は、特にバージョンフィールド(Java-JPA-@ Versionアノテーションを参照)で使用する場合に、古いエンティティを検出する方法を提供するため、より優れたimoです。
于 2013-03-21T04:58:08.073 に答える
0
- 取得したエンティティ インスタンスをセッションに配置します。
- を使用して、マップされたすべてのフィールドにフォームフィールドのターゲットを設定します
value="#{sessionScope.xxx.xxx}"
- 送信時に、セッション内のインスタンスを実行でき
merge
ます。persist
于 2013-03-21T03:37:57.603 に答える