Primefaces 行未更新-对话框中的更新按钮(由dataTable中的按钮打开)

Primefaces 行未更新-对话框中的更新按钮(由dataTable中的按钮打开),primefaces,eclipselink,updates,jpa-2.1,Primefaces,Eclipselink,Updates,Jpa 2.1,版本:PrimeFaces3.5、JPA2.1、GlassFish 4.0、JavaEE7、JSF2.0 对话框通常打开并显示编辑数据,但此对话框中的“更新”按钮不起作用。按钮代码如下: <p:commandButton actionListener="#{funcionarioMB.save}" value="Alterar" oncompl

版本:PrimeFaces3.5、JPA2.1、GlassFish 4.0、JavaEE7、JSF2.0

对话框通常打开并显示编辑数据,但此对话框中的“更新”按钮不起作用。按钮代码如下:

<p:commandButton actionListener="#{funcionarioMB.save}"
                                     value="Alterar"
                                     oncomplete="dlg.hide();"
                                     update=":tblFuncionarios"
                                     ajax="false" />
存储库中的方法edit():

public void edit(Funcionario funcionario) {
    this.manager.merge(funcionario);
}

如果没有ajax=“false”,用于更新实体的按钮将无法工作。

数据表在哪里

只需重新创建/重建数据表值

在managedbean/backingbean中,在执行CRUD操作后添加此方法

public List<T> refreshDatatable(){
    list=yourEJBFacade().getList();
    return list
}
公共列表刷新数据表(){
list=yourEJBFacade().getList();
返回列表
}
在会话bean中

public List<T> getList(){
 Query q = entityManager.createQuery("select a from YourEntityClass a");
 return q.getResultList();
}
public List getList(){
Query q=entityManager.createQuery(“从EntityClass a中选择a”);
返回q.getResultList();
}
更新数据表(update=“:tblFuncionarios”)

有关参考资料,请参阅

添加了
ActionEvent-ActionEvent
作为
save
方法的参数,由于Erick R.Ribeiro在PrimeFaces Facebook组中的提示,它现在可以工作了。

使用JDBC连接也不能工作。谢谢,但数据表正在正确刷新;已编辑的行未在数据库中更新。我已将其添加为ActionEvent作为“save”方法的参数。
public void edit(Funcionario funcionario) {
    this.manager.merge(funcionario);
}
public List<T> refreshDatatable(){
    list=yourEJBFacade().getList();
    return list
}
public List<T> getList(){
 Query q = entityManager.createQuery("select a from YourEntityClass a");
 return q.getResultList();
}