Form é processado em um button mas não em outro

Pra que repetir dados na tabela?
a seleção só vai funcionar com um rowKey unico, normalmente o id
Se você definir que o rowKey é um nome, nenhuma linha poderá ter o mesmo nome

No banco pode vir registro duplicado mesmo, mas se essa não é a intenção, a função distinct(campo) cuida disso

É que o meu id é gerado automático pelo BD, então eu não posso garantir um elemento único durante a inserção dos dados nesse dataTable, ai eu fico sem um elemento para definir no rowkey.

Se o id de um elemento é diferente de outro, ele ja é unico.

Vejamos esse exemplo de dois produtos:

Produto 1:
Id: 100
descricao: Serve para cortar.
peso: 100g.
cor: preto.
imagem: c:imagemProdutoQueCora.png

Produto 2:
Id: 101
descricao: Serve para cortar.
peso: 100g.
cor: preto.
imagem: c:imagemProdutoQueCora.png

No ponto de vista de caracteristicas, eles são iguais, fazem a mesma coisa, mesmo peso, mesma imagem, só que o id diz que são diferentes.

Se você definir o rowKey pro id, a dataTable considerará que são diferentes.

O cenário apresentado acima, pode acontecer facilmente.
Você pode tratar na inserção ou tratar no select
No select você usa a funcao distinct

Apesar de não ser a maneira correta eu consegui resolver o problema do rowKey.

Agora está sendo o botão de remover.

<p:commandButton id="rmvEquip" value="Remover" action="#{parciaisEdesImobAreasController.rmvItemList}" update="dataTable" ajax="false" process="@this"/>

Pois mesmo o process está sendo para apenas ele mesmo, o required dos campos como projeto, está barrando ele de executar seu método, exclamando que eles devem ser preenchidos, existe alguma maneira de se contornar isso?

Já consegui também, :smiley:

Era só adicionar o immediate=“true” no botão

Estranho, apenas o process já deveria resolver isso, não seria necessário o immediate.
Pois o process processa só o que voce mandar, ignorando o restante