2012-01-09 133 views
0

我有一個JSF頁面將表單值提交給數據庫。點擊按鈕時,值將提交給我的ManagedBeans並通過JPA寫入數據庫。然後,來自數據庫的更新值應顯示在同一頁的dataTable中。讓JSF等待數據庫

問題是:數據庫太慢了,所以JSF似乎在數據庫中的數據庫之前渲染頁面(因此只渲染早已存在的頁面)。我如何讓JSF等待數據庫完成寫入值?我可以找出如何獲得lifecylce的當前階段,但不知道如何阻止它......

回答

1

的問題是:該數據庫是太慢了,所以JSF似乎呈現頁面那些之前在數據庫中(因此只在那裏渲染舊的)。我如何讓JSF等待數據庫完成寫入值?

這確實沒有道理。 JSF只是做了你讓它在bean的操作方法中做的工作。顯然你沒有重新加載持久化數據庫中的列表。也許你指的是更新的項目只有在刷新頁面時纔可見,以便發起新的GET請求來重新加載數據庫中的數據。

規範的方法是在保存後立即從DB重新加載數據。

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

感謝您的回覆!也許它確實沒有道理 - 但奇怪的是,如果我在數據庫中創建一個全新的行,問題纔會出現。只需更新一個值,更改將直接寫入我的表中... – Alex 2012-01-09 18:18:13