Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Entendendo MVC e integrando o banco de dados com JPA 2 - aula 3 - limpando autor

Qual a diferença entre instanciar um novo autor no metodo gravar(), ou setar um valor null no nome com um autor.setName(null).

1 resposta
solução!

Olá Julio,

Ao instanciar um novo autor, você está dizendo ao seu formulário na view, que ele não está ligado a nenhum autor existente ainda, ou seja, enquanto não for preenchido um autor no formulário, esse autor não existirá no servidor.

Se você seta o autor com o nome = null, você está dizendo que o formulário da view está ligado a um autor que já existe (no caso, o último autor gravado), o que não parece correto. Visualmente não é possível perceber isso, já que em ambos os casos o formulário estará vazio, mas no seu ManagedBean, aquele Autor já existe!

Imagine ainda que o autor tenha vários outros atributos como idade, sobrenome, endereço, etc... Setando o nome como = null, e deixando os outros atributos intactos, o próximo autor que você gravar vai continuar com os atributos do anterior, o que seria um erro.

Ao criar uma nova instancia do objeto autor, estamos dizendo que assim que for gravado um autor, o formulário deve se ligar a um novo objeto, criado do zero! e isso faz todo sentido. Aquele antigo autor objeto já foi persistido e deve ser descartado.