Inserindo ao Inves de Atualizar

2 respostas
J

Ola a todos

Estou utilizando o metodo merge, aonde q tenho um Pojo com um atributo ID ja preenchido, mas ao executar o metodo, o valor dessa ID e setado como null e criado um novo registro no BD.
Alguem ja teve esse problema? qual seria a solução??

Grato

Edit

Melhor explicando, quando dou um submit no meu form, ele coloca a id como null.

Minha pagina de Form

<a4j:form id="selecao">
					<h:panelGrid columns="1" id="panelGridInputs"  >
						<rich:simpleTogglePanel id="detalhe"  label="Detalhes">
							<h:panelGrid columns="2">
							<h:outputText value="Id  " styleClass="texto"/><h:inputText id="id" value="#{clienteBBean.cliente.id_cliente}" style="width :248px" disabled="true"  />
							<h:outputText value="Nome  " styleClass="texto"/><h:inputText id="nome" value="#{clienteBBean.cliente.nome}" style="width :248px"  />
							<h:outputText value="Endereco " styleClass="texto"/><h:inputText id="endereco" value="#{clienteBBean.cliente.endereco}"></h:inputText>
							<h:outputText value="Setor  " styleClass="texto"/><h:inputText id="setor" value="#{clienteBBean.cliente.setor}" />
							<h:outputText value="Cidade  " styleClass="texto"/><h:inputText id="cidade" value="#{clienteBBean.cliente.cidade}" />
							<h:outputText value="Cep  " styleClass="texto"/><h:inputText id="cep" value="#{clienteBBean.cliente.cep}" />
							<h:outputText value="Ponto de Referencia  " styleClass="texto"/><h:inputText id="pref" value="#{clienteBBean.cliente.pontoref}" />
							<h:outputText value="E-mail  " styleClass="texto"/><h:inputText id="email" value="#{clienteBBean.cliente.email}" />
							<h:outputText value="Obs  " styleClass="texto"/><h:inputText id="obs" value="#{clienteBBean.cliente.obs}" />
							<h:outputText value="CPF ou CPNJ  " styleClass="texto"/>
							<h:inputText id="cpf" value="#{clienteBBean.cliente.cpf_cnpj}" >
								 <rich:jQuery selector="#cpf" query="mask('[CPF removido]')" timing="onload"/>
							</h:inputText>
							<h:outputText value="RG ou IE  " styleClass="texto"/><h:inputText id="rgie" value="#{clienteBBean.cliente.rg_ie}" />
						</h:panelGrid>
						<h:panelGrid columns="1">	
							<rich:dataTable title="Contatos" value="#{clienteBBean.cliente.contatoClientes}" var="contatos" width="300">
								<rich:column>
									<f:facet name="header">
										<h:outputText value="Nome"></h:outputText>
									</f:facet>
									<h:outputText value="#{contatos.nome}" styleClass="texto"/>
								</rich:column>
								<rich:column>
									<f:facet name="header">
										<h:outputText value="Numero Telefone" ></h:outputText>
									</f:facet>
									<h:outputText value="#{contatos.numero}" styleClass="texto"/>
								</rich:column>
								<rich:column>
									<f:facet name="header">
										<h:outputText value="Ação"></h:outputText>
									</f:facet>
									<a4j:commandLink value="Remover" action="#{clienteBBean.removeContato}">
										<f:setPropertyActionListener target="#{clienteBBean.contato}" value="#{cont}" /> 
									</a4j:commandLink>
								</rich:column>
							</rich:dataTable>			
						</h:panelGrid>
						<h:panelGrid columns="2">					
							<h:outputLabel for="nomecont" value="Nome Contato  " styleClass="texto"/><h:inputText id="nomecont" value="#{clienteBBean.novocontato.nome}" style="width :248px"/>
							<h:outputText value="Telefone Contato " styleClass="texto"/><h:inputText id="telcont" value="#{clienteBBean.novocontato.numero}" />
							<a4j:commandButton value="Cancelar" action="#{clienteBBean.atualiza}" />
							<a4j:commandButton value="Salvar Atualização" action="#{clienteBBean.updateCliente}" >
							</a4j:commandButton>
						</h:panelGrid>
					</rich:simpleTogglePanel>
				</h:panelGrid>
				</a4j:form>

2 Respostas

B

Na linha que é feita o merge o ID está null ou preenchido ? Tente debugar para ver, se o ID chegar null um novo registro será criado dependendo de como sua chave primária estiver mapeada…

J

eu ja tinha debugado, e o objeto fica com o Id certo, mas quando ativo o comando para merge ou update, ele coloca o Id como null.

Criado 2 de julho de 2010
Ultima resposta 3 de jul. de 2010
Respostas 2
Participantes 2