Erro exemplo de JPA com Netbeans

2 respostas
rockstorm

Saudações,

Estou seguindo o tutorial de JPA com Netbeans do Paulo Canhedo e me deparei com o seguinte erro:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
        at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:180)
        at com.gui.ClienteTabela.<init>(ClienteTabela.java:38)
        at Main.initComponents(Main.java:108)
        at Main.<init>(Main.java:32)
        at Main$3.run(Main.java:185)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: Exception [TOPLINK-8006] (Oracle TopLink Essentials - 2006.8 (Build 060830)): oracle.toplink.essentials.exceptions.EJBQLException
Exception Description: A problem was encountered resolving the class name - The descriptor for [clientes] was not found.
        at oracle.toplink.essentials.exceptions.EJBQLException.missingDescriptorException(EJBQLException.java:158)
        at oracle.toplink.essentials.internal.parsing.ParseTreeContext.classForSchemaName(ParseTreeContext.java:135)
        at oracle.toplink.essentials.internal.parsing.VariableNode.resolveClass(VariableNode.java:222)
        at oracle.toplink.essentials.internal.parsing.DotNode.resolveMapping(DotNode.java:195)
        at oracle.toplink.essentials.internal.parsing.DotNode.endsWithDirectToField(DotNode.java:154)

Meu codigo esta identico ao dele, somente mudei o banco que é mysql.
Ele esta salvando normal, mas o erro ocorre em um:

em.createQuery("select c.id from clientes c").getResultList();

quando ele tenta carregar uma lista.

Segue o codigo:

public ClienteTabela() {
        
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();
        listaCliente = em.createQuery("select c.id from clientes c").getResultList();
        
        for (Iterator<String> it = listaCliente.iterator(); it.hasNext();) {
            String elem = it.next();
            lista.add((Clientes) em.createNamedQuery("Clientes.findById").setParameter("id", elem).getSingleResult());
            
        }
        
        em.close();
    }

grato

2 Respostas

Henrik
em.createQuery("select c.id from clientes c").getResultList();

Coloca o Clientes (C maiusculo) e ve se da certo.

luizbarros

Estava com o mesmo problema e no meu caso a dica acima funcionou…

muito obrigado!!!

Criado 10 de agosto de 2007
Ultima resposta 20 de nov. de 2008
Respostas 2
Participantes 3