Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Erro durante login

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: livro is not mapped [select l from livro l]
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)
    org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62)
root cause

javax.ejb.EJBException: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: livro is not mapped [select l from livro l]
    org.jboss.as.ejb3.tx.CMTTxInterceptor.handleExceptionInOurTx(CMTTxInterceptor.java:166)
    org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:230)
    org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:304)
    org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:190)

Já tentei pesquisar e estudar as classes, mas não encontrei a solução. A classe livros está presente no arquivo persistense.xml igual as demais classes.

<class>br.com.caelum.livraria.modelo.Livro</class>

O erro é apresentado após apertar no botão de login. Fiz uns testes e com a ajuda de um outro bug, consegui ver que a aba de autores funciona normalmente, inclusive o cadastro, o logout também funciona normalmente, mas a aba livros apresenta novamente o erro.

8 respostas

Michael, tudo bem ?

Você está usando qual versão da JPA ?

Tem até a versão 2.1 instalada no meu eclipse.

https://www.dropbox.com/s/wdtzgxfq6bbxh3c/jpa.jpg?dl=0

Mas seu projeto tá usando qual ?

O projeto Livraria.

Fala Michael, tudo bem? você pode passar o seu Modelo de Livro e o DAO dele tb? talvez seja algum problema de mapeamento.

Tudo Bem, Samir. O link abaixo se refere ao meu projeto livraria completo.

https://www.dropbox.com/s/q0xud2bq2xoh5yx/livraria.rar?dl=0

Bom Dia, Alguma luz?

solução!

Fala Michael, tudo bem?

desculpe a demora! Então, o que acontece na verdade é um erro bobo daqueles que passa batido mesmo (por isso demorei pra achar a causa aahahahah). Tenta trocar a query do LivroDao para isso aqui:

public List<Livro> todosLivros() {
        return em.createQuery("select l from Livro l", Livro.class).getResultList();
    }

a única coisa que muda é ofrom Livro l que agora esta com o nome da entidade em maiusculo. Como a JPA cria o nome das tabelas com o mesmo nome da entidade, precisamos chamar a entidade como ela esta no banco, no caso usando camel case.

Qualquer dúvida manda pra gnt =)