Eu sei que o foco deste curso não é JPA mas fiquei curioso. Na classe LivroBean, como é que o JPA sabe qual é a tabela com a qual existe o relacionamento ManyToMany, se não foi usada a anotação "mappedBy"? É por causa do generics?
@ManyToMany
private List<Autor> autores = new ArrayList<Autor>();