Re:Hibernate.cfg.xml

2 respostas
jmoreira

Como está a estrutura de seus pacotes?
O hibernate.cfg.xml normalmente deve está na raiz da estrutura de pacotes dos fontes Java.
Ex:

+src -hibernate.cfg.xml +banco -HibernateUtil.class -Outra.class +diretorio1 -Outra1.class
Veja, hibernate.cfg.xml está no inicio dos fontes.
Outra coisa que deve se verificar é a questão do banco. Ao chamar o método getSessionFactory, a comunicação entre hibernate e o banco deve está funcionando. Ai, entra as outras configurações dentro do hibernate.cfg.xml e o mapeamento das classes Java com o Hibernate. Muitos detalhes devem serem observado.

Continue firme nos estudos.

2 Respostas

berdam

Galera, to com um problema, comprei o livro do Bauer, Java Persistence com Hibernate. Criei a classe Hibernateutil e fiz esse métodos

public class HibernateUtil {
    
    private static SessionFactory sessionfactory;
    
    static {
        try {
            sessionfactory = new Configuration().configure("/banco/hibernate.cfg.xml").buildSessionFactory();
        } catch (Throwable t){
              throw new ExceptionInInitializerError(t);
        }
    }
    
    public static SessionFactory getSessionFactory(){
        return sessionfactory;
    }
    
    public static void shutdown(){
        getSessionFactory().close();
    }
}
Na minha Main tenho apenas
HibernateUtil.getSessionFactory();
  HibernateUtil.shutdown();
Quando mando rodar, acontece esse erro
Exception in thread "main" java.lang.ExceptionInInitializerError
        at banco.HibernateUtil.<clinit>(HibernateUtil.java:30)
        at proxy.Main.main(Main.java:30)
Caused by: java.lang.ExceptionInInitializerError
        at banco.HibernateUtil.<clinit>(HibernateUtil.java:28)
        ... 1 more
Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.reflect.InvocationTargetException
        at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:532)
        at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:272)

No livro diz que o arquivo hibernate.cfg.xml, não precisa estar inserido no método configure, mas com ou sem a string no método configure dá esse erro.
O arquivo xml está na mesma pasta do HibernateUtil

Alguém sabe oque pode ser??

berdam

Já consegui arrumar, na verdade tinha uma bíblia de erros aqui.

Nem sei ao certo quais eram.

#   private static SessionFactory sessionfactory;  
#       
#     static {  
#         try {  
#             sessionfactory = new Configuration().configure("/banco/hibernate.cfg.xml").buildSessionFactory();  
#         } catch (Throwable t){  
#               throw new ExceptionInInitializerError(t);  
#         }  
#     }

troquei por

#   private static SessionFactory sessionfactory;  
#       
#     static {  
#         try { 
                 AnnotationConfiguration cfg = new AnnotationConfiguration();            
                cfg.addAnnotatedClass(Cliente.class);
                cfg.addAnnotatedClass(Pedidocliente.class);
                   
#             sessionfactory = new AnnotationConfiguration().configure("/banco/hibernate.cfg.xml").buildSessionFactory();  
#         } catch (Throwable t){  
#               throw new ExceptionInInitializerError(t);  
#         }  
#     }

Eu estava misturando um pouco de XML com annotations.

mas valeu mesmo assim

mas mesmo assim valeu.

Criado 1 de abril de 2008
Ultima resposta 1 de abr. de 2008
Respostas 2
Participantes 2