Erro: contato is not mapped

Pessoal boa noite, estou iniciando os estudos no hibernate e estou tendo um pequeno problema…

segue minha hibernateutil

public class HibernateUtil {
	private static final SessionFactory sessionFactory = buildSessionFactory();

	private static SessionFactory buildSessionFactory() {
		try {
			// Create the SessionFactory from hibernate.cfg.xml
                    AnnotationConfiguration cfg = new AnnotationConfiguration();
                    cfg.configure("hibernate.cfg.xml");
                    return cfg.buildSessionFactory();
		} catch (Throwable ex) {
			// Make sure you log the exception, as it might be swallowed
			System.err.println("Initial SessionFactory creation failed." + ex);
			throw new ExceptionInInitializerError(ex);
		}
	}

	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}
}

minha classe…

[code]
import java.sql.Date;
import javax.persistence.*;

@Entity
@Table(name = “contato”)

public class ContatoAnnotations{

@Id
@GeneratedValue
@Column (name = "codigo")
private Integer codigo;

@Column (name = "nome", length = 50, nullable = true)
private String nome;

@Column (name = "telefone", length = 50, nullable = true)
private String telefone;

@Column (name = "email", length = 50, nullable = true)
private String email;

@Column (name = "dt_cad", nullable = true)
private Date dataCadastro;

@Column (name = "obs", length = 50, nullable = true)
private String observacao;




public Integer getCodigo() {
	return codigo;
}
public void setCodigo(Integer codigo) {
	this.codigo = codigo;
}
public String getNome() {
	return nome;
}
public void setNome(String nome) {
	this.nome = nome;
}
public String getTelefone() {
	return telefone;
}
public void setTelefone(String telefone) {
	this.telefone = telefone;
}
public String getEmail() {
	return email;
}
public void setEmail(String email) {
	this.email = email;
}
public Date getDataCadastro() {
	return dataCadastro;
}
public void setDataCadastro(Date dataCadastro) {
	this.dataCadastro = dataCadastro;
}
public String getObservacao() {
	return observacao;
}
public void setObservacao(String observacao) {
	this.observacao = observacao;
}

}[/code]

Quando eu tento executar uma consulta me retorna o erro:

“Não foi possível buscar o contato. Erro: contato is not mapped [from contato]”

Exception in thread “main” org.hibernate.HibernateException: org.hibernate.hql.ast.QuerySyntaxException: contato is not mapped [from contato]
at hibernatecomannotations.ContatoCrudAnnotations.listar(ContatoCrudAnnotations.java:104)
at hibernatecomannotations.ContatoCrudAnnotations.main(ContatoCrudAnnotations.java:181)
Caused by: org.hibernate.hql.ast.QuerySyntaxException: contato is not mapped [from contato]
at org.hibernate.hql.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:181)
at org.hibernate.hql.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:111)
at org.hibernate.hql.ast.tree.FromClause.addFromElement(FromClause.java:93)
at org.hibernate.hql.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:314)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3355)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3239)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:726)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:577)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:294)
at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:237)
at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:254)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:185)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:98)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1760)
at hibernatecomannotations.ContatoCrudAnnotations.listar(ContatoCrudAnnotations.java:97)
… 1 more
Java Result: 1

Alguém pode me ajudar?

Grato.

mapeou a classe no persistence.xml? ou no hibernate.cfg.xml?

Posta o seu arquivo hibernate.cfg.xml

[code]<?xml version="1.0" encoding="UTF-8"?>

org.hibernate.dialect.MySQL5InnoDBDialect com.mysql.jdbc.Driver jdbc:mysql://localhost/agenda root thread
    <!-- Configurações do C3PO para pool de conexões -->
    <property name="c3po.min_size">5</property>
    <property name="c3po.max_size">20</property>
    <property name="c3po.timeout">300</property>
    <property name="c3po.max_statements">50</property>
    <property name="c3po.idle_test_period">3000</property>		
     
     
     		
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <property name="generate_statistics">true</property>
    <property name="use_sql_comments">true</property>


    
    <!--  Mapeando classes -->
    <mapping class="hibernatecomannotations.ContatoAnnotations" /> 

</session-factory>

[/code]

Alguém pode ajudar?

Aparentemente não tem nada de errado.

Como está sua consulta?

Vc está chamando sua entidade no select assim?

Mande ai para gente dar uma olhada, pois me pareceu que vc está chamando da forma errada assim:

Eu tinha feito from contato por isso não funcionou pois meu código está assim

code@Entity
@Table(name = “contato”)

public class ContatoAnnotations{ (…)[/code]

Acreditei que seria from contato ao invés de from ContatoAnnotations

Com a sua ajuda eu consegui rodar, muito obrigado!

[quote=pvrsouza]Como está sua consulta?

Vc está chamando sua entidade no select assim?

Mande ai para gente dar uma olhada, pois me pareceu que vc está chamando da forma errada assim:

[/quote]

Bem observado, passei batido nesse erro.

De qualquer forma muito obrigado a todos, só outra dúvida… como estou começando os estudos de desenvolvimento para web agora gostaria de saber se hibernate com annotations é a ferramenta usada no dia a dia, ou se existe outra opção melhor. No dia a dia de vocês quais são as ferramentas usadas?

Grato

[quote=thiago.emanuel_]De qualquer forma muito obrigado a todos, só outra dúvida… como estou começando os estudos de desenvolvimento para web agora gostaria de saber se hibernate com annotations é a ferramenta usada no dia a dia, ou se existe outra opção melhor. No dia a dia de vocês quais são as ferramentas usadas?

Grato[/quote]

Depende de empresa para empresa. Minha ultima empresa as configurações eram todas em XML, os chamados hbm.xml. Não usavam anotações porque os projetos começaram antes mesmo do lançamento do Java 5.

E como já se tinha inúmeras classes de entidades mapeadas, mesmo depois que chegaram as anotações, o custo para a troca de hbm.xml para anotações seria alto.

Mas se você pegar novos projetos, acredito que já usaram anotações como padrão.