2012-01-09 132 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