Qual a diferença entre instanciar um novo autor no metodo gravar(), ou setar um valor null no nome com um autor.setName(null).
Qual a diferença entre instanciar um novo autor no metodo gravar(), ou setar um valor null no nome com um autor.setName(null).
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.