Por que está dando essa mensagem quando mudei para :
<p:commandButton value="Gravar Autor"
action="#{livroBean.gravarAutor}" update="tabelaAutores" process="@this " />
minha classe:
package br.com.caelum.livraria.bean;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import br.com.caelum.livraria.dao.DAO;
import br.com.caelum.livraria.modelo.Autor;
import br.com.caelum.livraria.modelo.Livro;
@ManagedBean
@ViewScoped
public class LivroBean {
private Livro livro = new Livro();
private Integer autorId;
private List<Livro> livroList = new ArrayList<Livro>();
private List<Autor> autoresDoLivro = new ArrayList<Autor>();
public Livro getLivro() {
return livro;
}
public Integer getAutorId() {
return autorId;
}
public void setAutorId(Integer autorId) {
this.autorId = autorId;
}
public List<Autor> getAutores(){
return new DAO<Autor>(Autor.class).listaTodos();
}
public void gravar() {
System.out.println("Gravando livro " + this.livro.getTitulo());
if (livro.getAutores().isEmpty()) {
//throw new RuntimeException("Livro deve ter pelo menos um Autor.");
FacesContext.getCurrentInstance().addMessage("autor", new FacesMessage("Livro deve ter ao menos um autor"));
}
new DAO<Livro>(Livro.class).adiciona(this.livro);
}
public List<Livro> listaLivros(){
return new DAO<Livro>(Livro.class).listaTodos();
}
public List<Livro> getLivroList(){
return this.listaLivros();
}
public void setLivroList(List<Livro> livrosList){
this.livroList= livrosList;
}
/*public List<Autor> listaAutoresDoLivro(int id){
return new DAO<Autor>(Autor.class).listaAutoresDoLivro(id);
}*/
public List<Autor> getAutoresDoLivro() {
return this.autoresDoLivro;
}
public void setAutoresDoLivro(List<Autor> autoresDoLivro) {
this.autoresDoLivro = autoresDoLivro;
}
public void gravarAutor() {
System.out.println(autorId);
Autor autor = new DAO<Autor>(Autor.class).buscaPorId(autorId);
this.autoresDoLivro.add(autor);
this.livro.adicionaAutor(autor);
}
public void comecaComDigitoUm(FacesContext fc, UIComponent component, Object value) throws ValidatorException{
String valor = value.toString();
if(!valor.startsWith("1")){
throw new ValidatorException(new FacesMessage("O ISBN deve comecar com 1"));
}
}
}