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

Is not mapped

Bom dia pessoal!

Eu adicionei a anotação @Table(name = "TAB_REPRESENTANTE"), abaixo da anotação @Entity e meu sistema parou de funcionar, o Hibernate até cria a tabela no BD MySQL, porém não consigo executar nenhum método (adiciona/lista)... Se eu deixar o Hibernate criar a tabela com o msm nome da classe, o sistema funciona perfeitamente...

Eu só criei o persistence.xml, eu preciso criar mais qual arquivo de configuração para o Hibernate conseguir utilizar essa anotação?

Gera o seguinte erro:


HTTP Status 500 - org.hibernate.hql.internal.ast.QuerySyntaxException: tab_representante is not mapped [Select r from tab_representante r]


root cause

org.hibernate.hql.internal.ast.QuerySyntaxException: tab_representante is not mapped [Select r from tab_representante r]
    org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:79)
7 respostas

Ewerton, acho que você deu o nome pra ela em maiusculo, sera que se você não por em maiusculo não vai? posta a classe java pra gente ver

Msm erro Alisson, tanto colocando o nome em MAÍUSCULO ou minúsculo...

Classe Representante:

package br.com.ebf.modelo;

import java.util.Calendar;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;

import org.hibernate.validator.constraints.NotEmpty;

@Entity
@Table(name = "TAB_REPRESENTANTE")
public class Representante {

    @Id
    private int numCadastro;

    private int numCadAntigo;

    @Temporal(TemporalType.DATE)
    private Date dataCadastro = Calendar.getInstance().getTime();

    @NotEmpty
    private String nomeRazao;

outros campos...

Classe RepresentanteDao:

    public List<Representante> lista() {
        TypedQuery<Representante> query = manager.createQuery("Select r from TAB_REPRESENTANTE r", Representante.class);
        return query.getResultList();
    }

O problema está sendo no mapeamento da classe no persistence.xml

solução!

Ewerton eu acho que é o erro é o seguinte, lembra que linguagem de JPQL você lida com Classe e atributo? E não com tabelas? tenta trocar o seu select...

 public List<Representante> lista() {
        TypedQuery<Representante> query = manager.createQuery("Select r From Representante r", Representante.class);
        return query.getResultList();
    }

Era isso mesmo?

Desculpe a demora...

Acabei de testar...

Era isso msm, no JPQL eu trabalho com o nome da classe e não da tabela...

Muito obrigado pela atenção Alisson!!!

Um abraço!!

Ewerton é nois parceiro bom estudo. Abraço!!