Não sei o que ta errado

Estou começando a mexer no Hibernate Annotations e fiz um pequeno teste só que ta dando erro na compilação, vejam como ficou:
usei as seguintes lib do hibernate e do mysql:
antlr-2.7.6
asm
asm-attrs
cglib-2.1.3
commons-collections-2.1.1
commons-logging-1.0.4
dom4j-1.6.1
ehcache-1.2.2
ejb3-persistence
hibernate3
hibernate-annotations
hibernate-commons-annotations
jta
log4j-1.2.11
mysql-connector-java-5.0.5-bin

sendo que o hibernate core eh o 3.2.2
e o hibernate annotation eh 3.3.0

arquivo hibernate.cfg.xml:

<?xml version="1.0" encoding="UTF-8"?> com.mysql.jdbc.Driver jdbc:mysql://localhost/test root 15rzeuli83 org.hibernate.dialect.MySQLDialect true

arquivo contato.java:/*

  • Contato.java

*/

package modelo;

/**
*

  • @author Ricardo
    */
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;

@Entity
public class Contato {
private Long id;
private String nome;
private String email;
private String endereco;

public Contato() {
}

@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getEndereco() {
    return endereco;
}

public void setEndereco(String endereco) {
    this.endereco = endereco;
}

}

arquivo hibernateutil.java:

/*

  • HibernateUtil.java

*/

package util;

/**
*

  • @author Ricardo
    /
    import org.hibernate.
    ;
    import org.hibernate.cfg.*;

public class HibernateUtil {
private static final SessionFactory sessionFactory;

static {
    try {
        sessionFactory = new AnnotationConfiguration()
            .configure()
            .buildSessionFactory();
    } catch (Throwable ex) {
        throw new ExceptionInInitializerError(ex);
    }
}

public Session getSession() throws HibernateException {
    return sessionFactory.openSession();
}

}

arquivo hibernateteste.java

/*

  • HibernateTeste.java

*/

package teste;

/**
*

  • @author Ricardo
    */
    import modelo.Contato;

import org.hibernate.HibernateException;
import org.hibernate.Session;

import util.HibernateUtil;

public class HibernateTeste {

public static void main(String[] args) {
    try {
        Contato contato = new Contato();
        contato.setNome("teste hibernate");
        
        Session session = new HibernateUtil().getSession();
        session.beginTransaction();
        session.save(contato);
        session.getTransaction().commit();
        
        System.out.println("Gravado contato: " + contato.getId());
    } catch(HibernateException e) {
        e.printStackTrace();
    }
}

}

Esta dando o seguinte erro:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” java.lang.ExceptionInInitializerError
at util.HibernateUtil.(HibernateUtil.java:24)
at teste.HibernateTeste.main(HibernateTeste.java:26)
Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found
at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:147)
at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1405)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1427)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
at util.HibernateUtil.(HibernateUtil.java:20)
… 1 more
Java Result: 1

... Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found ...

Veja se o arquivo está no local adequado.

Até!

não ta achando o arquivo hibernate.cfg.xml

eh netbeans neh…

cria um diretorio META-INF e coloca o arquivo dentro…

Então o arquivo está assim:

na pasta Cantato tem as seguintes pastas e arquivos:

  • lib (pasta)
  • nbproject (pasta)
  • src (pasta)
    -test (pasta)
    build.xml (arquivo)
    hibernate.cfg.xml (arquivo)
    manifest.mf (arquivo)

Eu crei uma pasta META-INF e coloquei dentro o arquivo e não deu certo tambem… Tenho que fazer alguma configuração ???

Já fiz esse tutorial ai que vc está seguindo…
Coloque o hibernate.cfg.xml dentro da pasta “src”.

Zeuli,

Coloque dentro da pasta src, eu geralmente crio uma pasta “resources” e coloco os arquivos *.properties e o hibernate.cfg.xml

Boa sorte.

Valeu galera deu certo aqui… Muito fera esse Hibernate Annotation

Já que você está usando hibernate + annotations porque você não aproveita e elimina esse XML do hibernate.cfg.

No seu HibernateUtil na hora de criar o Configuration e passar o seu hibernate.cfg você cria um AnnotationConfiguration(); Mais ou menos como segue abaixo:

Configuration ac = new AnnotationConfiguration()
				// Package dos POJOs
				.addPackage("br.com.app.model.pojo")
				// Classes POJOs (Entidades do sistema)
				.addAnnotatedClass(Entidade1.class)
				.addAnnotatedClass(Entidade2.class);
				// Configurações de acesso ao PostgreSQL
				//.setProperty("hibernate.show_sql", "true")
				.setProperty("hibernate.dialect", DB_DIALECT)
				.setProperty("hibernate.connection.driver_class", DB_DRIVER_CLASS)
				.setProperty("hibernate.connection.url", db_url)
				.setProperty("hibernate.connection.username", DB_USERNAME)
				.setProperty("hibernate.connection.password", DB_PASSWORD);

Valeu… vou fazer aqui…

Um amigo meu falou com ele da pra criar as tabelas sem ter precisado criar elas antes no banco ???

Zeuli,

Exatamente, você faz todo o mapeamento usando o Hibernate, e quando você executa sua aplicação ele cria as tabelas para você como você definiu.