Erro JPA + DAO

E ai gente, blz?

to quebrando a cuca aqui com um erro cabuloso.

to montando uma estrutura com DAO + JPA + DERBY, mas o que consegui foi esse erro ao montar uma namedQuery:

TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007)) Local Exception Stack: Exception [TOPLINK-8034] (Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))): oracle.toplink.essentials.exceptions.EJBQLException Exception Description: Error compiling the query [findCliente: select a from CLIENTE as a]. Unknown abstract schema type [CLIENTE]. at oracle.toplink.essentials.exceptions.EJBQLException.unknownAbstractSchemaType(EJBQLException.java:494) at oracle.toplink.essentials.internal.parsing.ParseTreeContext.classForSchemaName(ParseTreeContext.java:163) at oracle.toplink.essentials.internal.parsing.SelectNode.getClassOfFirstVariable(SelectNode.java:366) at oracle.toplink.essentials.internal.parsing.SelectNode.getReferenceClass(SelectNode.java:354) at oracle.toplink.essentials.internal.parsing.ParseTree.getReferenceClass(ParseTree.java:463) at oracle.toplink.essentials.internal.parsing.ParseTree.adjustReferenceClassForQuery(ParseTree.java:103) at oracle.toplink.essentials.internal.parsing.EJBQLParseTree.populateReadQueryInternal(EJBQLParseTree.java:127) at oracle.toplink.essentials.internal.parsing.EJBQLParseTree.populateQuery(EJBQLParseTree.java:108) at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.buildEJBQLDatabaseQuery(EJBQueryImpl.java:219) at oracle.toplink.essentials.queryframework.EJBQLPlaceHolderQuery.processEjbQLQuery(EJBQLPlaceHolderQuery.java:111) at oracle.toplink.essentials.internal.sessions.AbstractSession.processEJBQLQueries(AbstractSession.java:2059) at oracle.toplink.essentials.internal.sessions.AbstractSession.processEJBQLQueries(AbstractSession.java:2046) at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.postConnectDatasource(DatabaseSessionImpl.java:724) at oracle.toplink.essentials.internal.sessions.DatabaseSessionImpl.loginAndDetectDatasource(DatabaseSessionImpl.java:604) at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.login(EntityManagerFactoryProvider.java:280) at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:229) at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.getServerSession(EntityManagerFactoryImpl.java:93) at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:126) at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:120) at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:91) at relatoriosCP.Main.getEntityManager(Main.java:73) at relatoriosCP.Main.<init>(Main.java:39) at relatoriosCP.Main.main(Main.java:67) Exception in thread "main" java.lang.NullPointerException

Alguem ja viu alguma coisa parecida?

valews! :slight_smile:

Como é que vc está montando seu find?
Como está mapeado a tabela cliente?

A classe do meu Object Value é essa aqui:

:sad:


package relatoriosVO;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 *
 * @author elison
 */

@Entity
@Table(name = "Cliente")
@NamedQuery(name = "findCliente", query = "select a from CLIENTE as a")

public class ClienteVO implements Serializable {
    @Column(name = "id", nullable = false)  
    @Id  
    @GeneratedValue

    private Long id;
    @Column(name = "idPessoa")
    private Long idPessoa;
    @Column(name = "nome") 
    private String nome;
    @Column(name = "sobrenome")
    private String sobrenome;
    @Column(name = "rg")
    private String rg;
    @Column(name = "cpf")
    private String cpf;

   .
   .**  gets e sets

}

Você tem que mudar para from ClienteVO ou invés de from CLIENTE

tentei mudar aqui e não deu certo… =\

CLIENTE é o nome da minha tabela, não é ela que devo referenciar na minha namedQuery?

@Entity

# @Table(name = “Cliente”)

@NamedQuery(name = “findCliente”, query = “select a from CLIENTE as a”)

public class ClienteVO implements Serializable {

Não, voce sempre tem que referiar a classe que você anotou como @Entity e os campos devem ser os nomes dos atributos.

Veja se a sua classe está mapeada no persistence.xml, assim:
pacote.NomeDaClasse

Ou você pode ser assim:
false

dizendo para ele não excluir as classes não listadas