Boa noite, Professor Nico!
Como o carregamento da lista de livros só ocorre ao adicionar um novo livro, conforme exercício, acredito que a lista this.livros ficará desatualizada, caso o evento seja de atualização de um livro (else).
Acredito que a lista de livros do LivroBean precisa ser carregada sempre que o método gravar é chamado.
Minha sugestão está correta?
public void gravar() {
System.out.println("Gravando livro " + this.livro.getTitulo());
if (livro.getAutores().isEmpty()) {
FacesContext.getCurrentInstance().addMessage("autor",
new FacesMessage("Livro deve ter pelo menos um Autor."));
return;
}
DAO<Livro> dao = new DAO<Livro>(Livro.class);
if(this.livro.getId() == null) {
dao.adiciona(this.livro);
} else {
dao.atualiza(this.livro);
}
this.livros = dao.listaTodos(); //Carrega a lista: novo livro ou atualização
this.livro = new Livro();
}