Estou estudando JPA com Hibernate e estou tentando trazer os dados que estão no banco, porém
ao executar o código, ele lança uma Exception. Uma coisa que observei, é que quando terminei o código
a linha 39 estava com um ponto de exclamação isso pelo que eu saiba quer dizer que ele não está sendo utilizado é isso mesmo ?
E também não sei se a linha 35 onde escrevi a query para me trazer os dados do banco se é assim mesmo que se escreve, talvez o
problema seja ali.
Agradeço desde já pela atenção obrigado.
/*
IMPORTS DA CLASSE PERSISTENCE
*/
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import Mapeamento.Fabricante;
import java.util.List;
public class ListaComJPA {
public static void main(String[] args) {
//INICIANDO O JPA
EntityManagerFactory fabica = Persistence.createEntityManagerFactory("livraria");
//CRIANDO GERENCIADOR DE ENTIDADES
EntityManager gerenciadorDeEntidades =
fabica.createEntityManager();
System.out.println("Realizando select na tabela");
Query minhaQuery = gerenciadorDeEntidades.createQuery("SELECT * FROM fabricante");
// CRIANDO UM ARRAY LIST PARA RECEBER O RESULTADO DA QUERY
List <Fabricante> fabricaLista = minhaQuery.getResultList();
// UTILIZANDO O FOREACH PARA IMPRIMIR OS DADOS DO FABRICANTE
for(Fabricante f:fabricaLista){
System.out.println("CNPJ"+f.getcnpj()+"\n"
+"Endereço"+f.getendereco());
/*
FECHANDO O MANIPULADOR DE ENTIDADES
FECHANDO INICIALIZAÇÃO DO JPA
*/
gerenciadorDeEntidades.close();
fabica.close();
}
}
}
Daniel,
A mensagem de erro que você postou diz que a classe Fabricante não está mapeada. Verifique se o nome q vc colocou na consulta está igual a classe mapeada, vou verifique se a classe foi mapeada corretamente.
Opa rapaziada Hvivox e JUniorDOzito funcionou !
Mas ao final ele lançou outra Exception
Realizando select na tabela
Hibernate:
select
fabricante0_.id as id0_,
fabricante0_.cnpj as cnpj0_,
fabricante0_.endereco as endereco0_
from
Fabricante fabricante0_
CNPJa
EndereçoRua
Exception in thread "main" java.lang.IllegalStateException: EntityManager is closed
at org.hibernate.ejb.EntityManagerImpl.close(EntityManagerImpl.java:121)
at Gera.ListaEditorasComJPA.main(ListaEditorasComJPA.java:57)
CNPJ15ui6m
Endereçob
[quote=hvivox]Na linha 57 e 58 vc está fechando aplicando o .close, acredito que o erro está lá.
[/quote]
Agora sim hvivox eu comentei as linhas 57 e 58 e ele compilou bonito haha.
Mudando um pouco de assunto, vc tinha comentado algo sobre separar o meu código em camadas
seria o modelo MVC ? Já ouvi muito falar disso mas nunca procurei utiliza-lo.
Obrigado aee rapaziada !
Realizando select na tabela
Hibernate:
select
fabricante0_.id as id0_,
fabricante0_.cnpj as cnpj0_,
fabricante0_.endereco as endereco0_
from
Fabricante fabricante0_
CNPJa
EndereçoRua
CNPJ15ui6m
Endereçob
CNPJlaura
EndereçoRua