Galera, tenho uma datable, ela é preenchida normalmente com todo o objeto. Uso um dialog para editar o objeto, só que na hora de editar da um erro dizendo que o objeto não é identificado. Debuguei e vir que o dialog pega o objeto sem o id. Andei pesquisando mas não conseguir resolver esse problema. Se alguém poder mim ajudar, agradeço.
Datable
<h:form>
<p:dataTable id="tabela" emptyMessage="Nenhum dado encontrado" value="#{clienteMB.listar()}" var="cliente">
<p:column headerText="Nome">
<h:outputText value="#{cliente.nome}"/>
</p:column>
<p:column headerText="CPF">
<h:outputText value="#{cliente.cpf}"/>
</p:column>
<p:column headerText="RG">
<h:outputText value="#{cliente.rg}"/>
</p:column>
<p:column headerText="Estado">
<h:outputText value="#{cliente.estado}"/>
</p:column>
<p:column headerText="Cidade">
<h:outputText value="#{cliente.cidade}"/>
</p:column>
<p:column headerText="Opções">
<p:commandButton icon="ui-icon-pencil" title="Editar" update="tabela" onclick="dlgEditar.show();">
<f:setPropertyActionListener target="#{clienteMB.clienteSelecionado}" value="#{cliente}"/>
</p:commandButton>
<p:commandButton icon="ui-icon-trash" title="Apagar" ajax="false" update="tabela" actionListener="#{clienteMB.deletarCliente(cliente)}"/>
<h:outputLink value="conta.xhtml">
<p:button icon="ui-icon-clipboard" title="Abrir conta"/>
</h:outputLink>
</p:column>
</p:dataTable>
</h:form>
Dialog:
<p:dialog widgetVar="dlgEditar" header="Editar Cliente" resizable="false" closable="false">
<h:form>
<p:panelGrid columns="2" style="margin-bottom:10px" >
<h:outputText value="Nome"/>
<p:inputText value="#{clienteMB.clienteSelecionado.nome}"/>
<h:outputText value="CPF"/>
<p:inputText value="#{clienteMB.clienteSelecionado.cpf}"/>
<h:outputText value="RG"/>
<p:inputText value="#{clienteMB.clienteSelecionado.rg}"/>
<h:outputText value="Estado: " />
<p:inputText value="#{clienteMB.clienteSelecionado.estado}"/>
<h:outputText value="Cidade"/>
<p:inputText value="#{clienteMB.clienteSelecionado.cidade}"/>
</p:panelGrid>
<h:commandButton value="Salvar" actionListener="#{clienteMB.alterarCliente()}"/>
<h:commandButton value="Cancelar" onclick="dlgEditar.hide();"/>
</h:form>
</p:dialog>