2012-01-09 5 views
0

を待つことを確認します。ボタンをクリックすると、値がManagedBeansに送信され、JPA経由でデータベースに書き込まれます。データベースから更新された値は、同じページのdataTableに表示されます。は、JSFは、私はデータベースにフォームの値を提出するJSFページを持つデータベース

問題がある:JSFはそれらをデータベース(これだけですでにそこに古いものをレンダリング)である前に、ページをレンダリングするように見えるように、データベースは、遅すぎます。 JSFがデータベースの値の書き出しを待機するようにするにはどうすればよいですか?データベースが遅すぎるので、JSFはそれらがある前に、ページをレンダリングするようだ:私は、問題がある

答えて

1

...それを停止する方法をlifecylceの現在のフェーズを取得する方法を見つけ出すことはできませんが、 (したがって古いものを既にレンダリングしているだけです)。 JSFがデータベースの値の書き出しを待機するようにするにはどうすればよいですか?

これは正直に意味がありません。 JSFはBeanのアクションメソッドで行うように指示しただけです。明らかに、あなたはDBからリストをリロードしていません。おそらく、あなたは新しいGET要求がDBからデータを再ロードした発射されるようにページを更新する場合、更新項目にのみ表示されていることに言及しています。

標準的な方法は、保存直後にDBからデータをリロードすることです。

public void save() { 
    someService.save(some); // Save item in DB. 
    list = someService.list(); // Reload list from DB. 
} 
+0

返信いただきありがとうございます!たぶん本当に意味をなさないかもしれませんが、奇妙なことは、データベースにまったく新しい行を作成する場合にのみ問題が発生することです。単一の値を更新するだけで、変更は自分のテーブルに直接書き込まれます... – Alex