Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Hibernate setando para null campo que já está preenchido

Fiz um teste na minha aplicação da seguinte forma: Eu crio um produto usando um formulario e seto todos os atributos desse produto, nome,descrição e etc.

Ai fui na jsp do formulario e tirei o input referente a descrição, quando vou tentar dar um update nesse produto que eu criei, sou direcionado para a tela do formulario(a mesma tela de formulario é usado tanto para adicionar quanto para alterar algum produto), setei todos os campos do formulario (menos o de descrição, pois tirei esse campo) e salvei as alterações.

Quando abri o banco para ver as informações desse produto a descrição setada na criação do produto estava como null. Como fazer o hibernate n trocar o campo preenchido para null?

Obrigado pela atenção

4 respostas

Você pode tentar anotar sua entidade com @DynamicInsert. De todo jeito, para mim, você devia carregar a entidade que já está gravada e aí trocar os valores que você quer.. para mim é melhor do que ficar usando esses recursos do hibernate.

Não teria nenhum jeito de fazer isso sem annotation? Basicamente o que eu gostaria é que o usuário pudesse alterar 2 de 3 campos e o campo que não fosse alterado continuasse com o valor que ele tinha, no meu caso ele simplesmente muda o valor para null

Sem annotation, você precisa carregar o objeto pelo id que veio do formulário e aí substituir apenas as informações que você precisa.

solução!

só completando a resposta do Alberto, oque acontece é que quando vc submete o formulário, você envia o objeto inteiro(isso não tem nada haver com o hibernate), então se você apaga o nome e envia esse objeto para o controlador, ele vai com o nome nulo mesmo, cuidado, não é porque um campo não esteja na tela que ele não vá ser submetido também.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software