Estou com dúvida nesse exercício porém acho que é mais uma dúvida referente ao hibernate. Quando tento renderizar os nomes dos autroes que eu gravei na tabela estou fazendo assim:
<h:dataTable value="#{livroBean.autoresDoLivro}" var="autor" id="tabelaAutores">
      <h:column>
          <h:outputText value="#{autor.nome}"/>
      </h:column>
</h:dataTable>Na minha classe LivroBean fiz assim:
public class LivroBean {
    private List<Autor> autoresDoLivro = new ArrayList<Autor>();
    public List<Autor> listaAutoresDoLivro(){
        return new DAO<Autor>(Autor.class).listaAutoresDoLivro(4); //coloquei 4 para ver se a query tava funcionando
    }
    public List<Autor> getAutoresDoLivro() {
        return this.listaAutoresDoLivro();
    }
    public void setAutoresDoLivro(List<Autor> autoresDoLivro) {
        this.autoresDoLivro = autoresDoLivro;
    }
}E na minha classe DAO fiz assim:
public class DAO{
    public List<Autor> listaAutoresDoLivro(int livroId){
        EntityManager em = new JPAUtil().getEntityManager();
        TypedQuery<Autor> query = em.createQuery("select a.nome from autor a "
                + "inner join livro_autor la "
                + "on la.AUTORES_ID = a.ID "
                + "where la.LIVRO_ID =" + livroId, Autor.class);
        List<Autor> autores = query.getResultList();
        return autores;
    }
}Eu testei essa query no oracle e funciona direitinho, porém eu sei que no hibernate as querys não se escrevem exatamente como no sql puro. O problema é que não sei como faço para essa query funcionar no hibernate. Como faço o join no hibernate? Alguém pode me dar uma dica? Obrigada.
 
            