Eu tenho um selectOneMenu dentro de uma tabela com rowEditing no primefaces, e o rowEditing está alterando normalmente os outros dados como nome etc. Mas quando chega na hora de escolher uma cidade com o selectOneMenu, ele simplesmente ignora minha alteração, e continua com a anterior…
Eu vi em certos casos que necessita de um converter, mas quando não uso o rowEditing para alterar, funciona normalmente, então acho que não deve ser necessário um converter
<p:column headerText="Cidade" style="width:20%">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{item.cidade.nomeCidade}" />
</f:facet>
<f:facet name="input">
<h:selectOneMenu id="cidade" value="#{clienteControle.idCidade}">
<f:selectItems value="#{cidadeControle.lista}"
var="itens"
itemLabel="#{itens.nomeCidade}"
itemValue="#{itens.idCid}" />
</h:selectOneMenu>
</f:facet>
</p:cellEditor>
</p:column>
e este é o metodo que eu chamo quando clico para alterar:
public void onEdit(RowEditEvent event) {
Object itemAlterado = event.getObject();
em.getTransaction().begin();
em.merge(itemAlterado);
em.getTransaction().commit();
FacesMessage msg = new FacesMessage("Cliente editado");
FacesContext.getCurrentInstance().addMessage(null, msg);
}
Alguma ideia do que está errado? É realmente necessário um converter?