Collector do Primefaces [RESOLVIDO]

Olá pessoal,

Sou novo por aqui e, antecipadamente, desculpem-me por qualquer coisa.

É o seguinte:

1 - tenho duas entidades numa relação UMxMUITOS (Motorista e Telefones do motorista).
2 - Estou utilizando o mapeamento JPA gerado pelo próprio NetBeans.
3 - Fiz uma <p:dataTable> mostrando os motoristas com um botão de alterar que chama um <p:dialog> com os telefones do motoristas.
4 - Nesse <p:dialog> tem um <p:dataTable> com <p:collector> com um link para remover o telefone do motorista:


<p:dataTable id="dataTableMotorista" var="fone" value="#{tbMotoristasController.selected.tbMotoristasFonesList}" emptyMessage="">
	<p:column id="mtfFone" headerText="#{bundle.ListTbMotoristasFonesTitle_tbMotoristasFonesPK_mtfFone}">
			<h:outputText value="#{fone.getTbMotoristasFonesPK().getMtfFone()}" />
	</p:column>
	<p:column>
			<p:commandLink value="Remover" update=":formMotorista:tabView" process=":formMotorista:tabView">
					<p:collector value="#{fone}" removeFrom="#{tbMotoristasController.selected.tbMotoristasFonesList}" />
			</p:commandLink>
	</p:column>
</p:dataTable>

Problema: o telefone é removido MAS não atualiza o banco de dados. Onde posso estar errando?

Ted Wagner

Ops, esqueci essa parte do código de dentro do form onde estão os telefones:

<p:commandButton value="OK" update=":formMotoristas:dataTableMotoristas" oncomplete="dialogoMotorista.hide();" actionListener="#{tbMotoristasController.update()}" />

Agradeço qualquer ajuda.

Pessoal,

Bastou apenas adicionar “orphanRemoval=true” no relacionamento que funcionou:


@OneToMany(cascade = CascadeType.ALL, mappedBy = "tbMotoristas", fetch = FetchType.LAZY, orphanRemoval=true)

Bye.