Hibernate - PASSO A PASSO - SOCORRO!

Meus caros colegas.

Pelo amor de Jesus Cristo…alguém conhece alguma apostila de Hibernate que tenha um passo a passo
didático no qual eu consiga completar um exemplo básico por inteiro.
Todas as possíveis que eu peguei em tudo que foi lugar não conseguem apresentar um passo a passo de um simples exemplo.
Sempre falta alguma coisa na explicação e eu fico sem saber que diabos fazer pra desvendar o mistério.

Eu já entendi toda a arquitetura deste bendito Hibernate mas eu não consigo completar sequer um exemplo.

Já peguei material de:
JEEBrasill;
Guj;
Caelum - FJ21;
Tutoriais em PDF em outros locais;

Resumindo eu estou pra desistir literalmente…

Fico imensamente grato pela ajuda desta forte e tão unida comunidade.

Um abraço a todos.

Boa noite, Igor.

Realmente, muitas vezes seguir um tutorial ou uma apostila de algum framework pode não ser tão simples como deveria ser, eu mesmo tive alguma dificuldade ao aprender a utilizar o framework VRaptor(principalmente pois na época a unica referencia era o site e a apostila da Caelum), porém aconselho vc a não desistir, pois a principal função do Hibernate é a PERSISTÊNCIA(opz, desculpas pela brincadeira, mas eu não poderia deixar passar essa).

Agora falando sério, quando estava aprendendo Hibernate utilizei a apostila da Caelum, não lembro de ter tido dificuldades porém muito provavelmente ela deve ter sido atualizada.

Segue abaixo o link de uma apostila bem simples e que de brinde também ensina Annotations.

http://www.marvinlemos.net/download/arquivo/118/hibernate_annotation.pdf

Um ultimo conselho seria, que antes de tentar trocar de apostila tente nos enviar as possiveis duvidas ou erros que possam surgir durante o seu aprendizado para que possamos ajudar.

Leandro…Blz?

Olha só…eu to estudadndo esse material que vc me enviou, que por sinal é muito bom, só que tá dando um errinho no meu projeto…no primeiro exercicio que cria o metodo save().
Queria um help seu pra que eu consiga evoluir nesse passo…
Minhas classes e arquivos são:

HibernateUtil.java;
Cliente.java;
ClienteDAO;
Principal.java;
hibernate.cfg.xml;

segue abaixo as classes e o erro:

HibernateUtil.java

package teste;

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

public class HibernateUtil {
	 private static final SessionFactory sessionFactory;
	 static {
	  	try {
		// Create the SessionFactory from hibernate.cfg.xml
		sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
		} catch (Throwable ex) {
		// Make sure you log the exception, as it might be swallowed
		System.err.println("Initial SessionFactory creation failed." + ex);
		throw new ExceptionInInitializerError(ex);
		}
	}
	public static SessionFactory getSessionFactory() {
		return sessionFactory;
	}
}

Cliente.java;

package teste;

import java.io.Serializable;

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

@Entity 
@Table(name = "cliente")
public class Cliente implements Serializable {

	@Id @GeneratedValue(strategy = GenerationType.AUTO)
	private Long id;
	
	@Column(name = "nome_cliente", nullable = false, length=60)
	private String nome;	

	@Column(name = "idade", nullable = false, length = 5)
	private Long idade;
	
	public Cliente(){
		super();
	}
	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 Long getIdade() {
		return idade;
	}
	public void setIdade(Long idade) {
		this.idade = idade;
	}
}

ClienteDAO;

[code]
package teste.dao;

import org.hibernate.Session;

import teste.Cliente;
import teste.HibernateUtil;

public class ClienteDAO {
private Session session;

public ClienteDAO(){
}

public void salvar(Cliente cli){
	session = HibernateUtil.getSessionFactory().getCurrentSession();
	session.beginTransaction();
	session.save(cli);
	session.getTransaction().commit();
}

}[/code]

Principal.java


package teste;

import teste.dao.ClienteDAO;

public class Principal {
	
	public static void main (String[] args){
		Cliente c1 = new Cliente();
		c1.setNome("Raul Seixas");
		c1.setIdade(new Long(12));

		Cliente c2 = new Cliente();
		c2.setNome("Raul Seixas");
		c2.setIdade(new Long(13));
		
		ClienteDAO clienteDAO = new ClienteDAO();
		clienteDAO.salvar(c1);
		clienteDAO.salvar(c2);
	}
}

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>
		<!-- Database connection settings -->
		<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="connection.url">jdbc:mysql://localhost/teste</property>
		<property name="connection.username">root</property>
		<property name="connection.password">igor</property>

		<!-- JDBC connection pool (use the built-in) -->
		<property name="connection.pool_size">1</property>

		<!-- SQL dialect -->
		<property name="dialect">org.hibernate.dialect.HSQLDialect</property>

		<!-- Enable Hibernate's automatic session context management -->
		<property name="current_session_context_class">thread</property>

		<!-- Disable the second-level cache -->
		<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

		<!-- Echo all executed SQL to stdout -->
		<property name="show_sql">true</property>
		
		<mapping class="teste.Cliente"/>
	</session-factory>
</hibernate-configuration>

erro no console do eclipse:


log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Initial SessionFactory creation failed.org.hibernate.HibernateException: /hibernate.cfg.xml not found

Igor,

Também sou novo no Hibernate, mas acho que posso ajudar…
O método buildSessionFactory() busca pelo arquivo de configuração hibernate.cfg.xml, neste caso, ele está tentando buscar este arquivo um diretório acima do diretório da classe que está chamando o buildSessionFactory, ou seja:

Sua classe HibernateUtil está no diretório src/teste/ e o buildSessionFactory está buscando pelo arquivo de configuração do hibernate (hibernate.cfg.xml) no diretório src, onde provavelmente este arquivo não se encontra.

A solução que conheço, até o momento, é deixar este arquivo de configuração dentro do diretório src.

Talvez tenha como configurar algum arquivo para direcionar onde vc quer que o buildSessionFactory busque o hibernate.cfg.xml.

Espero ter ajudado.

Alguem sabe onde tem um novo link para a apostila citada acima? o link esta fora do ar …estou iniciando em hibernate, estou tendo dificildades em compreensao e funcionalidades e gostaria de algo passo a passo e esta apostila me parece ser bem bacana, estou seguindo video aulas da devmedia para hibernate mas ele cria a classe usuario,venda e produto alem das DAO o hibernate util e 2 interfaces td de uma vez antes de mostrar resultados e qdo da o erro ai não sabe oq é nem de onde veio…ao inves de ir demonstrando aos poucos para entender melhor oq cada coisa faz…tipo criar tudo do usuario e mostrar o resultado…tudo do produto… bom qem puder ajudar na apostila agradeço