Minha aplicação hibernate dá erro, mas a classe tá lá
Comecei a estudar o hibernate e fui acompanhando um tutorial q peguei na web. Ele diz que um arquivo(Curso.hbm.xml) não foi encontrado. Abaixo meus arquivos, todos.
Curso.hbm.xml
cfg.xml
Meu UtilityHibernate
Minha classe Curso
E o erro que está dando
Curso.hbm.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > <hibernate-mapping package="com.persistencia"> <class name="Curso"> <id name="id"> <generator class="increment"/> </id> <property name="descricao"></property> <property name="nome"></property> </class> </hibernate-mapping>
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.dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost/hibernate?autoReconnect=true</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">simbad</property> <!-- Condiguração do c3p0 --> <property name="hibernate.c3p0.max_size">10</property> <property name="hibernate.c3p0.min_size">2</property> <property name="hibernate.c3p0.timeout">5000</property> <property name="hibernate.c3p0.max_statements">10</property> <property name="hibernate.c3p0.idle_test_period">3000</property> <property name="hibernate.c3p0.acquire_increment">2</property> <!-- Configurações de debug --> <property name="show_sql">true</property> <property name="hibernate.generate_statistics">true</property> <property name="hibernate.use_sql_comments">true</property> <mapping resource="Curso.hbm.xml"/> <mapping resource="Disciplina.hbm.xml"/> <mapping resource="Turma.hbm.xml"/> <mapping resource="Pessoa.hbm.xml"/> <mapping resource="Aluno.hbm.xml"/> <mapping resource="Professor.hbm.xml"/> <mapping resource="Endereco.hbm.xml"/> </session-factory> </hibernate-configuration>
Meu UtilityHibernate
package com.DAO;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtility {
private static SessionFactory factory;
static {
try {
factory = new Configuration().configure().buildSessionFactory();
} catch (Exception e) {
e.printStackTrace();
factory = null;
}
}
public static Session getSession() {
return factory.openSession();
}
}Minha classe Curso
package com.persistencia;
public class Curso {
private String nome;
private String descricao;
public void setNome(String nome){
this.nome = nome;
}
public String getNome(String nome){
return nome;
}
public void setDescricao(String descricao){
this.descricao = descricao;
}
public String getDescricao(String descricao){
return descricao;
}
}E o erro que está dando
org.hibernate.MappingNotFoundException: resource: Curso.hbm.xml not found at org.hibernate.cfg.Configuration.addResource(Configuration.java:769) at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2314) at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2280) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2260) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2213) at org.hibernate.cfg.Configuration.configure(Configuration.java:2128) at org.hibernate.cfg.Configuration.configure(Configuration.java:2107) at com.persistencia.HibernateUtility.<clinit>(HibernateUtility.java:11) at com.persistencia.Teste.main(Teste.java:10) Exception in thread "main" java.lang.NullPointerException at com.persistencia.HibernateUtility.getSession(HibernateUtility.java:18) at com.persistencia.Teste.main(Teste.java:10)
Pjava
Curtidas 0
Respostas
Robson Teixeira
02/02/2011
Olá Paulo
So tenho 1 pergunta o arquivo Curso.hbm.xml se encontra no mesmo diretorio que os outros arquivos hbm???
As vezes o hibernate esteja procurando o arquivo em 1 diretorio diferente.
att
robson Passarella
So tenho 1 pergunta o arquivo Curso.hbm.xml se encontra no mesmo diretorio que os outros arquivos hbm???
As vezes o hibernate esteja procurando o arquivo em 1 diretorio diferente.
att
robson Passarella
GOSTEI 0
Pjava
02/02/2011
Sim, robson, todos e estão na Raiz da aplicação. É isso mesmo?
GOSTEI 0
Davi Costa
02/02/2011
Talvez seja o pacote, que deve passar e não só o nome do xml,se ele estiver em um pacote, vc deve passar o caminho completo.
att Davi
att Davi
GOSTEI 0
Pjava
02/02/2011
Não, não tá em nenhum pacote o Curso.hbm.xml. Ele na Raiz da aplicação mesmo, só ele. baixei um artigo sobre annotations e vou estudar. Dizem ser mais fácil e melhor trabalhar com elas, q ces acham?
GOSTEI 0
Pjava
02/02/2011
Abaixo meu projeto e suas pastas. Veja que o arquivo Curso.hbm.xml está no Raiz da Aplicação(Projeto). E o arquivo hibernate.cfg.xml está sendo lido, pois senão não me retornaria esse erro, certo? Nos pacotes com.persistencia estão minhas classes e com.DAO está o HibernateUtility.
GOSTEI 0
Davi Costa
02/02/2011
E melhor mantê-los no source.
Se possível no mesmo pacote que vc mantém as entidades.
Att Davi
Se possível no mesmo pacote que vc mantém as entidades.
Att Davi
GOSTEI 0
Pjava
02/02/2011
Já havia feito isso e nada funcionou. Tentei colocar em: Java Resource: sr, onde está o cfg.xml, mas não consigo arrastar para lá.
GOSTEI 0
Davi Costa
02/02/2011
Testou colocar em um pacote e passar o caminho completo?
Att
Att
GOSTEI 0
Dyego Carmo
02/02/2011
Desista destes malditos "hbm"s...
Troque tudo para Anotações , vai resolver os problemas de sua vida !!!!
Troque tudo para Anotações , vai resolver os problemas de sua vida !!!!
GOSTEI 0
Pjava
02/02/2011
Ok, Dyego vou fazer sim. Estou estudando exatamente isso. Essas anotações são JPA, certo?
GOSTEI 0
Davi Costa
02/02/2011
JPA é a especificação,
existem algumas implementações do JPA como Hibernate, TopLink.
Att Davi
existem algumas implementações do JPA como Hibernate, TopLink.
Att Davi
GOSTEI 0
Pjava
02/02/2011
Ok, vou encerrar essa Thread, pois acho que é isso mesmo. Porém, caso ainda necessite de ajuda em Hibernate com JPA, abro outra. valeu a todos.
GOSTEI 0