Problema para conectar usando o hibernate.cfg.xml (Hibernate)

Pessoal

Sou novo no Hibernate, estou com dificuldade em utilizá-lo.Na minha classe onde vou fazer o Insert na tabela, quando a aplicação chega na linha “cfg.configure()” , simplismente a aplicação para de executar. Não da erro ou algo do tipo. No Console aparece assim:

0 [http-8080-2] INFO annotations.Version - Hibernate Annotations 3.3.1.CR1 31 [http-8080-2] INFO cfg.Environment - Hibernate 3.3.0.SP1 37 [http-8080-2] INFO cfg.Environment - hibernate.properties not found 43 [http-8080-2] INFO cfg.Environment - Bytecode provider name : javassist 51 [http-8080-2] INFO cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 832 [http-8080-2] INFO cfg.Configuration - configuring from resource: hibernate.cfg.xml 833 [http-8080-2] INFO cfg.Configuration - Configuration resource: hibernate.cfg.xml

Depois disso, a aplicação para, não executa mais. Estou enviando a configuração do hibernate.cfg.xml:

[code]<?xml version='1.0' encoding='utf-8'?>

<hibernate-configuration>
    <session-factory>
 
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost/dadoscd</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">faria2725</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.format_sql">true</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
 
        <mapping class="br.com.cd.unidadeoperativa.UnidadeOperativa"/>
 
    </session-factory>
</hibernate-configuration>

[/code]

Segue abaixo a Classe UnidadeOperativa:

[code]package br.com.cd.entidy;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name=“unidadeoperativa”)
public class UnidadeOperativa {

@Id @GeneratedValue
private Integer coduo;
@Column(length=50, nullable=false)

private String descricao;

public Integer getCoduo() {
	return coduo;
}
public void setCoduo(Integer coduo) {
	this.coduo = coduo;
}
public String getDescricao() {
	return descricao;
}
public void setDescricao(String descricao) {
	this.descricao = descricao;
}

[/code]

A Classe que estou tentando inserir os dados:

[code]package br.com.cd.insert;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;

public class Insert {

//Funcao para inserir dados no banco
public static void insertdao(Object objeto){
			
	 AnnotationConfiguration cfg = new AnnotationConfiguration();
	 cfg.configure("hibernate.cfg.xml");
	 SessionFactory factory = cfg.buildSessionFactory();
	 Session session = factory.openSession();
	
	 Transaction tx = session.beginTransaction();
	 session.save(objeto);
	 tx.commit();
}

}[/code]

A localização do arquivo hibernate.cfg.xml (Em anexo)

Obrigado


Amigo, acho que sua pasta source está apontada para a flex_src.
Se você colocar o hibernate.cfg.xml nesta pasta, já resolve.
Mas se quiser manter na pasta onde está, clique com o botão direito em seu projeto, depois Build Path -> Configure Build Path.
Selecione a guia source, e inclua o diretório onde está seu código fonte (src_java).
Acredito que isso resolva.

Abraço

Bem, agora que vi que na saída do console aparentemente o hibernate está encontrando seu arquivo, mas é estranho não exibir nenhuma exceção.
De qualquer forma, tente configurando o seu build path para ver no que vai dar.

Jefferson,

Tentei colocar la no src_flex e deu o mesmo problema. Você tem mais alguma ideia do que pode ser?

Obrigado

Aparentemente não tem nada errado no seu arquivo e o Hibernate está encontrando ele, se não estivesse, seria lançada uma exceção.
Coloque um try/catch nesse código, para ver se ele captura alguma exceção.

romarcio,

coloquei o try/catch e fiz algumas modificações, agora está dando um outro erro:

0 [http-8080-2] INFO annotations.Version - Hibernate Annotations 3.3.1.CR1 45 [http-8080-2] INFO cfg.Environment - Hibernate 3.3.0.SP1 51 [http-8080-2] INFO cfg.Environment - hibernate.properties not found 57 [http-8080-2] INFO cfg.Environment - Bytecode provider name : javassist 64 [http-8080-2] INFO cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 7409 [http-8080-2] WARN connection.UserSuppliedConnectionProvider - No connection properties specified - the user must supply JDBC connections

O fonte:

[code]public static void insertdao(Object objeto){
AnnotationConfiguration cfg = new AnnotationConfiguration();
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
Transaction tx = session.beginTransaction();
try {
cfg.configure(“hibernate.cfg.xml”);
session.save(objeto);
tx.commit();
} catch (Exception e) {
System.err.println(e);
tx.rollback();
}

}[/code]

O erro acontece quando tento executar a linha “SessionFactory factory = cfg.buildSessionFactory();”

Alguma ideia?

Obrigado

Na verdade não tem erro nenhum, apenas um WARN que não é erro. Altere o try/catch: public static void insertdao(Object objeto){ AnnotationConfiguration cfg = new AnnotationConfiguration(); try { SessionFactory factory = cfg.buildSessionFactory(); Session session = factory.openSession(); Transaction tx = session.beginTransaction(); cfg.configure("hibernate.cfg.xml"); session.save(objeto); tx.commit(); } catch (Exception e) { e.printStackTrace(); //System.err.println(e); //tx.rollback(); } }

Fiz o teste e ainda continua com erro

[code]//Funcao para inserir dados no banco
public static void insertdao(Object objeto){
AnnotationConfiguration cfg = (AnnotationConfiguration) new AnnotationConfiguration().configure().buildSessionFactory();
try {
SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
Transaction tx = session.beginTransaction();
cfg.configure(“hibernate.cfg.xml”);
session.save(objeto);
tx.commit();
} catch (Exception e) {
e.printStackTrace();
//System.err.println(e);
//tx.rollback();
}

}

[/code]

32 [http-8080-2] INFO cfg.Environment - Hibernate 3.3.0.SP1 38 [http-8080-2] INFO cfg.Environment - hibernate.properties not found 43 [http-8080-2] INFO cfg.Environment - Bytecode provider name : javassist 64 [http-8080-2] INFO cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 210 [http-8080-2] INFO cfg.Configuration - configuring from resource: /hibernate.cfg.xml 210 [http-8080-2] INFO cfg.Configuration - Configuration resource: /hibernate.cfg.xml

Tenta assim:

[code]
public static void insertdao(Object objeto){
SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory();
try {
//SessionFactory factory = cfg.buildSessionFactory();
Session session = factory.openSession();
Transaction tx = session.beginTransaction();
//cfg.configure(“hibernate.cfg.xml”);
session.save(objeto);
tx.commit();
} catch (Exception e) {
e.printStackTrace();
//System.err.println(e);
//tx.rollback();
}

}[/code]

Valeu cara, agora funcionou legal

[code]public static void insertdao(Object objeto){
try {
SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = factory.openSession();
Transaction tx = session.beginTransaction();
session.save(objeto);
tx.commit();
} catch (Exception e) {
e.printStackTrace();
}

}

[/code]

[quote=leandrofaria]Valeu cara, agora funcionou legal

[code]public static void insertdao(Object objeto){
try {
SessionFactory factory = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = factory.openSession();
Transaction tx = session.beginTransaction();
session.save(objeto);
tx.commit();
} catch (Exception e) {
e.printStackTrace();
}

}

[/code][/quote]

Beleza, mas só uma observação sobre o Hibernate. Não é recomendado a cada método você criar uma SessionFactory. O correto é criar um objeto apenas e a partir dele você cria varias Session.
Da uma olhada nesse tutorial: http://mballem.wordpress.com/2011/03/09/utilizando-swing-com-hibernate-sessionfactory/