Hibernate + Hibernate Annotations

Bom dia galera, comecei a estudar hibernate e estou encontrando problemas para rodar meu primeiro exemplo…
Estou usando annotations também mas ele sempre encontra um erro!
Já baixei do site as últimas versões do hibernate-core e do hibernate-annotations!
o meu hibernate.properties ficou assim:

hibernate.dialect org.hibernate.dialect.PostgreSQLDialect
hibernate.connection.driver_class org.postgresql.Driver
hibernate.connection.url jdbc:postgresql://localhost:5432/teste
hibernate.connection.username web
hibernate.connection.password senha

criei uma uma classe para fazer a comunicação com o Anntotaion e ficou assim:

import javax.persistence.Id;
import org.hibernate.annotations.Entity;


@Entity
public class Teste1 {
    
    @Id
    private int id;
    
    private String desc;

    public int getId() {
        return id;
    }

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

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }
}

E depois criei o método main para gerar as tabelas e ficou assim:

[code]import org.hibernate.cfg.AnnotationConfiguration;

/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    import org.hibernate.tool.hbm2ddl.SchemaExport;

/**
*

  • @author matheus
    */
    public class GeraTabela {

    public static void main(String[] args) {
    AnnotationConfiguration conf = new AnnotationConfiguration();
    conf.addAnnotatedClass(Teste1.class);
    new SchemaExport(conf).create(true, true);
    }

}[/code]

Os meus jar´s que estou colocando são esses:
Hibernate-core:

hibernate3.jar
antlr-2.7.6.jar
commons-collections3-1.jar
dom4j-1.6.1.jar
javassit-3.4.GA.jar
jta-1.1.jar
slf4j-api-1.5.2.jar

Hibernate Annotations:
hibernate-annotations.jar
dom4j.jar
ejb3-persistence.jar
hibernate.commons-annotations.jar
hibernate-core.jar
slf4j-api.jar

Quando eu fiz isso deu o seguinte erro:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
        at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
        at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
        at GeraTabela.main(GeraTabela.java:18)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder

Com isso fui no site http://www.slf4j.org/codes.html#StaticLoggerBinder e baixei este arquivo slf4j-1.5.3.zip
e adicionei o jar: slf4j-nop-1.5.3.jar no biblioteca do annotations. Mas quando novamente fui rodar ele me deu um novo erro que é o seguinte:

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/helpers/NOPLogger
        at org.slf4j.impl.NOPLoggerFactory.getLogger(NOPLoggerFactory.java:55)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:103)
        at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
        at GeraTabela.main(GeraTabela.java:18)

Com isso não consigo sair deste erro. Alguém poderia me dar alguma dica? Estou sem alternativas =/
Será que está faltando algum .jar? Olhei no site do hibernate e o annotation que estou usando é compatível com o core que estou usando!

Opaaaa valeu pela dica
Então eu instalei realmente essa biblioteca e deu certo sim =D

Obrigado pela ajuda… Está quase tudo funcionando mas agora eu um OUTRO erro

Exception in thread "main" org.hibernate.HibernateException: No CurrentSessionContext configured!
        at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:572)
        at teste.ClienteDAO.salvar(ClienteDAO.java:20)
        at Principal.main(Principal.java:33)

Ele não entra na minha excpetion mas ele joga essa exception aí!!!
Será que é alguyma configuração do meu xml do hibernate?

Abaixo segue a minha configuracao no arquivo hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
    <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/teste</property>
    <property name="hibernate.connection.username">web</property>
    <property name="hibernate.connection.password">senha</property>
    <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
    <mapping class="teste.Cliente"/>
  </session-factory>
</hibernate-configuration>

Abraçossss

Consegui encontrar o erro
estava no xml… O xml certo ficou assim

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.connection.driver_class">org.postgresql.Driver</property> <property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/teste</property> <property name="hibernate.connection.username">web</property> <property name="hibernate.connection.password">senha</property> <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property> <property name="hibernate.current_session_context_class">thread</property> <property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <mapping class="Cliente" package="teste"></mapping> </session-factory> </hibernate-configuration>

Mas estou com outro erro agora:

Exception in thread "main" org.hibernate.MappingException: Unknown entity: teste.Cliente at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:580) at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1365) at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210) at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:56) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195) at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:50) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93) at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:562) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:550) at org.hibernate.impl.SessionImpl.save(SessionImpl.java:546) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342) at $Proxy0.save(Unknown Source) at teste.ClienteDAO.salvar(ClienteDAO.java:22) at Principal.main(Principal.java:33)

Bom parece que o xml ainda está mal configurado…
creio que seja algo nessa linha

Alguma sugestão galera?

Abraços

Daeee galera depois de muito custo e 1 dia estudando só para conseguir fazer o meu “hello world” od hibernate eu consegui fazer ele funcionar… Agora é só estudar mais a fundo

Obrigado a quem me ajudou… =D

Vamos ao erro… Este último erro é o seguinte estava importando uma classe que NÃO deveria importar na minha classe Teste1 então a classe Teste1 ficou assim:

    import javax.persistence.*;  
   
    @Entity  
    public class Teste1 {  
          
        @Id  
        private int id;  
         c
       private String desc;  
     
       public int getId() {  
           return id;  
       }  
     
       public void setId(int id) {  
           this.id = id;  
       }  
     
       public String getDesc() {  
           return desc;  
       }  
     
       public void setDesc(String desc) {  
           this.desc = desc;  
       }  
   }  

Valeu abraçossss

Desculpa é que no meio dos testes eu mudei de Teste1 para Cliente, mas o código da classe continuo o mesmo!!!

Olá amigo, tive um problema parecido há algum tempo atrás.

A minha dica é pra baixar a API logback-0.9.9. Provavelmente depois irá surgir um outro erro que é a falta da cglib. Baixe esse jar tb(A versão no-dep).

Link: http://www.guj.com.br/posts/list/95161.java

Abraço und Auf Wiedersehen!!!

Desculpe, mas o nome da classe era teste1 e vc parece ter mapeado como teste.