1
resposta

Atualização de Médico - Passagem de informações null do DTO para Entity

Bom dia, No vídeo "atualizando dados" referente a aula onde apanhamos os dados de um DTO no controller e atualizamos o Médico que foi capturado pelo ID informado, no lugar de fazer aqueles "ifs" para verificar se tal campo é null para não sobrescrever as informações que já estavam prenchidas na BD para null, não seria possivel evitar todos estes "ifs" e instanciar uma nova Entity passando todos "setters" do DTO (mesmo sendo null) para esta nova entity e usar a variação do método save(Example<?> entity) com um ID?

Esta variação não já desconsidera que se a entidade tem campos a null não sobrescreva os mesmos campos com o que está na BD? Creio que se passar esta entidade com o ID preenchido automáticamente o Spring Data considera que ele não ta criando um novo registro, mas se atualizando e portanto os nulls são desconsiderados automaticamente não?

Obrigado,

1 resposta

Oi Diego!

O problema de instanciar uma nova entidade é que ela vai vir no estado TRANSIENT para a JPA (ou DETACHED) se vier com o id setado, e isso pode causar problemas na hora de fazer o merge. Eu acho que mesmo assim ele iria sobrescrever as colunas para null, ao invés de ignorar. Precisa testar para ver o comportamento e efeitos colaterais.