Bibliotecas utilizadas:
cglib-nodep-2.1_3.jar
commons-beanutils.jar
commons-collections.jar
commons-dbcp.jar
commons-logging.jar
dom4j-1.6.1.jar
ejb3-persistence.jar
hibernate3.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
jta.jar
mysql-connector-java-5.0.7-bin.jar
Fontes Ciclo de Vida:
ROOT
 - lib
  - libs
 - src
  - Usuario.java
  - UsuarioServico.java
  - HibernateUtil.java
  - hibernate.cfg.xml
HibernateUtil.java
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateUtil {
 private static final SessionFactory sessionFactory;
 static {
  try {
   // Criando a SessionFactory apartir no hibernate.cfg.xml
   sessionFactory = new AnnotationConfiguration().configure()
     .buildSessionFactory();
  } catch (Throwable ex) {
   System.err.println("Não foi possivel criar a SessionFactory." + ex);
   throw new ExceptionInInitializerError(ex);
  }
 }
 public static SessionFactory getSessionFactory() {
  return sessionFactory;
 }
}
Usuario.java
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Usuario {
 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 private Integer id;
 private String login;
 private String senha;
 private String nome;
 private String email;
 public Integer getId() {
  return id;
 }
 public void setId(Integer id) {
  this.id = id;
 }
 public String getLogin() {
  return login;
 }
 public void setLogin(String login) {
  this.login = login;
 }
 public String getSenha() {
  return senha;
 }
 public void setSenha(String senha) {
  this.senha = senha;
 }
 public String getNome() {
  return nome;
 }
 public void setNome(String nome) {
  this.nome = nome;
 }
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
 @Override
 public String toString() {
  return "Usuario["+this.getId()+"]: Nome "+this.getNome();
 }
}
UsuarioSevico.java
import org.hibernate.Session;
public class UsuarioServico {
 private Session session;
 public static void main(String[] args) {
  UsuarioServico servico = new UsuarioServico();
  System.out.println("----------------------------");
  System.out.println("Criar um objeto Persistente");
  System.out.println("----------------------------");
  servico.criar();
  System.out.println("----------------------------");
  System.out.println("Obter objeto Persistente");
  System.out.println("----------------------------");
  servico.obter();
  System.out.println("----------------------------");
  System.out.println("Atualizar objeto persistente");
  System.out.println("----------------------------");
  servico.atualizar();
  System.out.println("----------------------------");
  System.out.println("Tornar transisnte um objeto persistente");
  System.out.println("----------------------------");
  servico.tornarTransiente();
 }
 private void criar() {
  // Objeto transiente
  Usuario u = new Usuario();
  u.setEmail("email");
  u.setLogin("login");
  u.setNome("nome");
  u.setSenha("senha");
  iniciandoSessao();
  // Objeto sendo persistido
  session.save(u);
  // Objeto persistido
  session.getTransaction().commit();
  // Objeto transiente
 }
 private void obter() {
  iniciandoSessao();
  // Objeto transiente
  Usuario u = (Usuario) session.load(Usuario.class, 1);
  // Objeto persistente
  System.out.println("Usuario " + u.toString());
  session.getTransaction().commit();
  // Objeto transiente
 }
 private void atualizar() {
  iniciandoSessao();
  // Objeto transiente
  Usuario u = (Usuario) session.get(Usuario.class, 2);
  // Objeto persistente
  System.out.println("Usuario " + u.toString());
  u.setNome("novo nome");
  session.getTransaction().commit();
  // Objeto transiente
 }
 private void tornarTransiente() {
  iniciandoSessao();
  // Objeto transiente
  Usuario u = (Usuario) session.get(Usuario.class, 3);
  // Objeto persistente
  if (u != null) {
   System.out.println("Usuario " + u.toString());
   session.delete(u);
  }
  session.getTransaction().commit();
  // Objeto transiente
 }
 private void iniciandoSessao() {
  session = HibernateUtil.getSessionFactory().openSession();
  session.beginTransaction();
 }
}
hibernate.cfg.xml
<!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/hibernateCicloDeVida</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <property name="connection.pool_size">1</property>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <property name="hbm2ddl.auto">update</property>
  <mapping class="Usuario"/>
 </session-factory>
</hibernate-configuration>
Fontes Associações: ROOT - lib - libs - src - hibernate.cfg.xml - entidade - Endereco.java - Usuario.java - Veiculo.java - servico - UsuarioServico.java - VeiculoServico.java - util - HibernateUtil.java hibernate.cfg.xml
<!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/hibernateCicloDeVida</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <property name="connection.pool_size">1</property>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <property name="hbm2ddl.auto">update</property>
  <mapping class="entidade.Usuario"/>
  <mapping class="entidade.Endereco"/>
  <mapping class="entidade.Veiculo"/>
 </session-factory>
</hibernate-configuration>
Entidades: Usuario.java
package entidade;
import java.util.List;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
@Entity
public class Usuario {
 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 private Integer id;
 private String login;
 private String senha;
 private String nome;
 private String email;
 @OneToMany(mappedBy = "usuario")
 @Cascade(CascadeType.ALL)
 private Set enderecos;
 @ManyToMany(fetch = FetchType.LAZY)
 @JoinTable(name = "aluguel", joinColumns = { @JoinColumn(name = "usuario_id", referencedColumnName = "id") }, inverseJoinColumns = { @JoinColumn(name = "veiculo_id", referencedColumnName = "id") })
 private List veiculos;
 public Integer getId() {
  return id;
 }
 public void setId(Integer id) {
  this.id = id;
 }
 public String getLogin() {
  return login;
 }
 public void setLogin(String login) {
  this.login = login;
 }
 public String getSenha() {
  return senha;
 }
 public void setSenha(String senha) {
  this.senha = senha;
 }
 public String getNome() {
  return nome;
 }
 public void setNome(String nome) {
  this.nome = nome;
 }
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
 @Override
 public String toString() {
  return "Usuario[" + this.getId() + "]: Nome " + this.getNome();
 }
 public Set getEnderecos() {
  return enderecos;
 }
 public void setEnderecos(Set enderecos) {
  this.enderecos = enderecos;
 }
 public List getVeiculos() {
  return veiculos;
 }
 public void setVeiculos(List veiculos) {
  this.veiculos = veiculos;
 }
}
      
Endereco.java
package entidade;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
@Entity
public class Endereco {
 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 private Integer id;
 private String rua;
 private Integer numero;
 private String bairro;
 private String cidade;
 private String uf;
 private String cep;
 @ManyToOne()
 @JoinColumn(name = "usuario_id", referencedColumnName = "id", insertable = true, updatable = true)
 private Usuario usuario;
 public Usuario getUsuario() {
  return usuario;
 }
 public void setUsuario(Usuario usuario) {
  this.usuario = usuario;
 }
 public String getRua() {
  return rua;
 }
 public void setRua(String rua) {
  this.rua = rua;
 }
 public Integer getNumero() {
  return numero;
 }
 public void setNumero(Integer numero) {
  this.numero = numero;
 }
 public String getBairro() {
  return bairro;
 }
 public void setBairro(String bairro) {
  this.bairro = bairro;
 }
 public String getCidade() {
  return cidade;
 }
 public void setCidade(String cidade) {
  this.cidade = cidade;
 }
 public String getUf() {
  return uf;
 }
 public void setUf(String uf) {
  this.uf = uf;
 }
 public String getCep() {
  return cep;
 }
 public void setCep(String cep) {
  this.cep = cep;
 }
 public Integer getId() {
  return id;
 }
 public void setId(Integer id) {
  this.id = id;
 }
}
Veiculo.java
package entidade;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@Entity
public class Veiculo {
 @Id
 @GeneratedValue(strategy = GenerationType.AUTO)
 private Integer id;
 @Column()
 private String modelo;
 @Column()
 private String cor;
 @Column()
 private Integer ano;
 @ManyToMany(fetch = FetchType.LAZY)
 @JoinTable(name = "aluguel", joinColumns = { @JoinColumn(name = "veiculo_id", referencedColumnName = "id") }, inverseJoinColumns = { @JoinColumn(name = "usuario_id", referencedColumnName = "id") })
 private List usuarios;
 public List getUsuarios() {
  return usuarios;
 }
 public void setUsuarios(List usuarios) {
  this.usuarios = usuarios;
 }
 public Integer getId() {
  return id;
 }
 public void setId(Integer id) {
  this.id = id;
 }
 public String getModelo() {
  return modelo;
 }
 public void setModelo(String modelo) {
  this.modelo = modelo;
 }
 public String getCor() {
  return cor;
 }
 public void setCor(String cor) {
  this.cor = cor;
 }
 public Integer getAno() {
  return ano;
 }
 public void setAno(Integer ano) {
  this.ano = ano;
 }
}
   
Servico: UsuarioServico.java
package servico;
import java.util.HashSet;
import org.hibernate.Session;
import util.HibernateUtil;
import entidade.Endereco;
import entidade.Usuario;
public class UsuarioServico {
 private Session session;
 public static void main(String[] args) {
  UsuarioServico servico = new UsuarioServico();
  System.out.println("-------------------------------");
  System.out.println("Criar um usuario e seu endereco");
  System.out.println("-------------------------------");
  servico.criar();
 }
 private void criar() {
  
  Usuario u1 = new Usuario();
  u1.setEmail("email");
  u1.setLogin("login");
  u1.setNome("nome");
  u1.setSenha("senha");
  u1.setEnderecos(new HashSet());
  
  Endereco e1 = new Endereco();
  e1.setBairro("bairro");
  e1.setCep("cep");
  e1.setCidade("cidade");
  e1.setNumero(123);
  e1.setRua("rua");
  e1.setUf("uf");
  e1.setUsuario(u1);
  u1.getEnderecos().add(e1);
  
  Usuario u2 = new Usuario();
  u2.setEmail("email");
  u2.setLogin("login");
  u2.setNome("nome");
  u2.setSenha("senha");
  u2.setEnderecos(new HashSet());
  
  Endereco e2 = new Endereco();
  e2.setBairro("bairro");
  e2.setCep("cep");
  e2.setCidade("cidade");
  e2.setNumero(123);
  e2.setRua("rua");
  e2.setUf("uf");
  e2.setUsuario(u2);
  u2.getEnderecos().add(e2);
  
  
  iniciandoSessao();
  session.save(u1);
  session.save(u2);
  session.getTransaction().commit();
 }
 private void iniciandoSessao() {
  session = HibernateUtil.getSessionFactory().openSession();
  session.beginTransaction();
 }
}
  
VeiculoServico.java
package servico;
import org.hibernate.Session;
import util.HibernateUtil;
import entidade.Veiculo;
public class VeiculoServico {
 private Session session;
 public static void main(String[] args) {
  VeiculoServico servico = new VeiculoServico();
  System.out.println("-------------------------------");
  System.out.println("Criar um veiculo");
  System.out.println("-------------------------------");
  servico.criar();
 }
 private void criar() {
  Veiculo v1 = new Veiculo();
  v1.setAno(2005);
  v1.setCor("cor 1");
  v1.setModelo("modelo 1");
  Veiculo v2 = new Veiculo();
  v2.setAno(2007);
  v2.setCor("cor 2");
  v2.setModelo("modelo 2");
  iniciandoSessao();
  session.save(v1);
  session.save(v2);
  session.getTransaction().commit();
 }
 private void iniciandoSessao() {
  session = HibernateUtil.getSessionFactory().openSession();
  session.beginTransaction();
 }
}
 
Um comentário:
Olá bom dia aqui e o rodrigo muito bom a aula faltei a primeira aula mas agora vou acompanhar pelo blog muito boa a ideia. parabéns
Postar um comentário