Olá pessoal,
Quero atualizar um objeto no banco de dados com JPA. Para isso no meu formulário (de edição) o VRatpor cria o objeto com os valores dos inputs:
Bom, com isso, o VRaptor vai criar um cliente e setar o nome com o valor digitado.
Quando vou atualizar no banco de dados, outros campos da tabela, como por exemplo dataCadastro são setados como NULL, pois este objeto que o VRaptor criou não tem data.
O cliente que o VRaptor criou é detached, e quando faço o merge com o EntityManager, ele “sobrescreve” os campos da tabela.
Ainda não descobri uma forma de nao deixar o JPA sobrescrever os campos que não estou atualizando no form.
Contornei da seguinte forma:
- buscando o cliente no banco pelo id
- ia chamando setter por setter do cliente attached com os valores do cliente detached
Mas se eu tiver uns 20 atributos pra atualizar, teria que ficar “setando” cada um.
Contudo acho que essa não é uma boa forma.
Espero ter sido claro, e desde já agradeço a atenção.