1
resposta

Dúvida ao implementar alterar autor

Ao implementar o código par alterar autor, deparei-me com o seguinte problema, os dados do autor estavam sendo carregados no inputText, mas ao clicar em Gravar um novo autor era sempre cadastrado. O Id estava sempre nulo. Abaixo o código do método gravar:

    public String gravar() {

        System.out.println("Gravando autor " + this.autor.getNome());

        if (this.autor.getId() == null) {
            System.out.println("Adicionando autor..." + this.autor.getNome());
            new DAO<Autor>(Autor.class).adiciona(this.autor);
            return "livro?faces-redirect=true";
        }
        else{
            System.out.println("Atualizando autor..." + this.autor.getNome());
            new DAO<Autor>(Autor.class).atualiza(this.autor);
            new FacesMessage("Autor atualizado...");
            return "";
        }

    }

Notei que ao retirar a linha new FacesMessage("Autor atualizado..."); o método foi corretamente executado e o autor alterado. A intenção era apenas exibir uma mensagem na página de que o autor havia sido alterado. Poderia me explicar o porquê da criação do FacesMessage estar criando este comportamento de não alterar o Autor e perder as referências a este?

1 resposta

Não parece que foi isso não.. Alguma coisa aconteceu no meio do caminho e aí ficou parecendo que foi isso que fez o código funcionar.