Se vc recupera um registro, altera ele e manda fazer merge, ele atualiza.
Agora se vc nao pesquisa o registro e popula o objeto e manda fazer um merge, ele faz insert.
Abraço.
Andre_Brito
Porque ele não está no estado ‘managed’, mas sim no ‘detached’. Em outras palavras, ele não está dentro do contexto de persistência, é um objeto que não existe no banco.
EuclidesFilizola
poderia me explicar melhor ? vc está dizendo que o hibernate não está enxergando meu objeto de código número 10 por exemplo ?
exemplo, entidade.getCod() … na qual o resultado é 10, o hibernate não está enxergando ela ? está achando que é uma entidade nova ?
EuclidesFilizola
Eu tentei fazer de uma outra forma utilizando o update no nativeQuery, porém ele traz o mesmo erro. Saca só:
public String alterarStatus(Integer codItensPedido){
final Query query = getEntityManager().createNativeQuery("UPDATE tbsicm_pedidoitens SET nr_atendido = true where cd_id_pedido_itens = "+codItensPedido+"");
query.executeUpdate();
return "cadastrar_pedido";
}
…
B
bobmoe
esse objeto não tem umais uma ligação com hibernate… imagine q se vc fechou a sessão que ele estava ligado o banco pode ter mudado, portanto o obejto está fora de sincronia com os dados. assim vc deve reconecta-lo a alguma sessão do hibernate.
tente, esse caso, com o método update(…)
EuclidesFilizola
Problema resolvido galera. Como nosso amigo acima disse, eu preciso buscar o objeto antes de fazer o update.