Problema na criação de tabelas com o Hibernate

Olá, boa noite a todos do GUJ.
Estou iniciando os estudos no framework hibernate e estou tendo o seguinte problema abaixo quando mando gerar minha tabelas no BD.

org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="com.jeovane.sistema.cliente.Cliente"/> Exception in thread "main" java.lang.NullPointerException at Conecta.main(Conecta.java:10)

Meu arquivo de mapeamento e conexão no banco é o seguinte abaixo

<hibernate-configuration> <session-factory name=""> <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="hibernate.connection.password">vertrigo</property> <property name="hibernate.connection.url">jdbc:mysql://localhost/sistemavendas</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.hbm2ddl.auto">update</property> <mapping class="com.jeovane.sistema.cliente.Cliente"/> <mapping class="com.jeovane.sistema.produto.Produto"/> <mapping class="com.jeovane.sistema.venda.Venda"/> </session-factory> </hibernate-configuration>
A classe que executo para gerar as tabelas é a seguinte abaixo.

public class Conecta { public static void main(String[] args) { Session session = null; try { session = HibernateUtil.getSession().openSession(); System.out.println("Conectou!"); } finally{ session.close(); System.out.println("Fechou a conexão!"); } } }
E minha classe de configuração é a seguinte abaixo.

[code]public class HibernateUtil {
private static final SessionFactory session = buildSessionFactory();

private static SessionFactory buildSessionFactory() {
	try {
		Configuration cfg = new Configuration();
		cfg.configure("hibernate.cfg.xml");
		return cfg.buildSessionFactory();
	} catch (Exception e) {
		System.out.println("Erro!\n" + e);
		throw new ExceptionInInitializerError();
	}
}

public static SessionFactory getSession() {
	return session;
}

}[/code]
Alguém sabe me dizer aonde que estou errando?
Desde de já obrigado pela ajuda de todos.

Cara,

Você tem alguma nescessidade específica para criar as classes de modelo a partir da conexão?
Por que particulamente prefiro criar as classes atraves de New Entity Class from Database.

Não necessariamente, é apenas pra teste e agilizar a criação mesmo, além disso, estou iniciando. :confused:

Qual versão do Hibernate vc tá usando? Veja a mensagem:

Versões anteriores a, se não me engano, 3.6 precisam usar a classe AnnotationConfiguration ao invés da Configuration. Qual a sua versão?

Já que está iniciando, siga a dica do colega rfogo.
Eu também prefiro “criar na mão”.
E também como o wagnerfrancisco disse, sempre tem umas “peculiaridades” de versão para versão 8)

Se tiver usando Annotation nos seus POJO’s tem que usar a AnnotationConfiguration ao invés da classe Configuration no seu HibernateUtil… Caso esteja usando XML tanto faz…

A versão do hibernate é a 3.5.5-Final
É melhor usar uma mais recente ou o que?

Exato, como eu falei, antes da versão 3.6 você precisava usar AnnotationConfiguration.

Partindo da 3.6, pode usar direto a classe Configuration (como vc fez).

Baixe a versão mais recente, a 4.1. Estas classes vão estar deprecated, mas irão funcionar. Depois pesquise como fazer o setup na versão 4.

Opa, tá certo :slight_smile:
Obrigado wagnerfrancisco

cara vc ta declarando uma classe ao inves do xml no hibernate.

no teu hibernate.cfg.xml vc ta mapeando é a classe em si e não o xml que vc mesmo declarou, se na tua classe entidade não estão declarados os annotations vai dar errado, tente colocar o xml de mapeamento de classe no cfg do hibernate.

outra dica, também concordo com os colegas e acho que vc devia fazer as tabelas do banco na mão mesmo ao invés de usar hibernate.