ROOT
lib
antlr-2.7.6.jar
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
src
hibernate.cfg.xml
entidades
classe
Pessoa.java
PessoaFisica.java
PessoaJuridica.java
simples
Flor.java
Rosa.java
Tulipa.java
subclasse
Caminhao.java
Carro.java
Veiculo.java
servico
FlorServico.java
PessoaServico.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/hibernateHeranca</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">create</property>
<!-- Tabela por Classe -->
<mapping class="entidades.classe.PessoaFisica"/>
<mapping class="entidades.classe.PessoaJuridica"/>
<!-- Tabela Simples / Tabela por Hierarquia -->
<mapping class="entidades.simples.Tulipa"/>
<mapping class="entidades.simples.Rosa"/>
<mapping class="entidades.simples.Flor"/>
<!-- Tabela por Subclasse -->
<mapping class="entidades.subclasse.Veiculo"/>
<mapping class="entidades.subclasse.Carro"/>
<mapping class="entidades.subclasse.Caminhao"/>
</session-factory>
</hibernate-configuration>
Pessoa.java
package entidades.classe;
import java.util.Date;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
@MappedSuperclass
public class Pessoa {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String nome;
private Date dataNascimento;
gets e sets ...
}
PessoaFisica.java
package entidades.classe;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class PessoaFisica extends Pessoa{
private String cpf;
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
}
PessoaJuridica.java
package entidades.classe;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class PessoaJuridica extends Pessoa {
private String cnpj;
private String nomeFantasia;
gets e sets...
}
Flor.java
package entidades.simples;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "tipo_flor",
discriminatorType = DiscriminatorType.STRING)
public class Flor {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
private String cor;
gets e sets...
}
Rosa.java
package entidades.simples;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
@Entity
@DiscriminatorValue(value="ROSA")
public class Rosa extends Flor{
private String tamanhoEspinho;
public String getTamanhoEspinho() {
return tamanhoEspinho;
}
public void setTamanhoEspinho(String tamanhoEspinho) {
this.tamanhoEspinho = tamanhoEspinho;
}
}
Tulipa.java
package entidades.simples;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
@Entity
@DiscriminatorValue(value = "TULIPA")
public class Tulipa extends Flor{
}
Caminhao.java
package entidades.subclasse;
import javax.persistence.Entity;
import javax.persistence.PrimaryKeyJoinColumn;
@Entity
@PrimaryKeyJoinColumn(name = "id", referencedColumnName="id")
public class Caminhao extends Veiculo {
private String tipoCarga;
private String altura;
gets e sets...
}
Carro.java
package entidades.subclasse;
import javax.persistence.Entity;
import javax.persistence.PrimaryKeyJoinColumn;
@Entity
@PrimaryKeyJoinColumn(name = "id", referencedColumnName = "id")
public class Carro extends Veiculo {
private String tamanhoPortamalas;
private String qtdadePortas;
gets e sets...
}
Veiculo.java
package entidades.subclasse;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Veiculo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String chassi;
private String placa;
private String modelo;
gets e sets...
}
FlorServico.java
package servico;
import org.hibernate.Session;
import util.HibernateUtil;
import entidades.simples.Rosa;
import entidades.simples.Tulipa;
public class FlorServico {
public static void main(String[] args) {
FlorServico p = new FlorServico();
p.criarRosa();
p.criarTulipa();
}
private void criarTulipa() {
Tulipa f = new Tulipa();
f.setCor("Branca");
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(f);
session.getTransaction().commit();
}
private void criarRosa() {
Rosa f = new Rosa();
f.setTamanhoEspinho("Grandes");
f.setCor("Vermelha");
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(f);
session.getTransaction().commit();
}
}
PessoaServico.java
package servico;
import java.util.Date;
import org.hibernate.Session;
import util.HibernateUtil;
import entidades.classe.PessoaFisica;
import entidades.classe.PessoaJuridica;
public class PessoaServico {
public static void main(String[] args) {
PessoaServico p = new PessoaServico();
p.criarPessoaFisica();
p.criarPessoaJuridica();
}
private void criarPessoaJuridica() {
PessoaJuridica p = new PessoaJuridica();
p.setCnpj("123465");
p.setDataNascimento(new Date());
p.setNome("PJ 01");
p.setNomeFantasia("PJ Nome Fantasia 01");
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(p);
session.getTransaction().commit();
}
private void criarPessoaFisica() {
PessoaFisica p = new PessoaFisica();
p.setCpf("123465");
p.setDataNascimento(new Date());
p.setNome("PF 01");
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(p);
session.getTransaction().commit();
}
}
VeiculoServico.java
package servico;
import org.hibernate.Session;
import util.HibernateUtil;
import entidades.subclasse.Caminhao;
import entidades.subclasse.Carro;
public class VeiculoServico {
public static void main(String[] args) {
VeiculoServico p = new VeiculoServico();
p.criarCarro();
p.criarCaminhao();
}
private void criarCaminhao() {
Carro v = new Carro();
v.setChassi("WQERW131354WER");
v.setModelo("AUDI");
v.setPlaca("DHS8938");
v.setQtdadePortas("5");
v.setTamanhoPortamalas("30L");
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(v);
session.getTransaction().commit();
}
private void criarCarro() {
Caminhao v = new Caminhao();
v.setChassi("AASD987897ASD987");
v.setModelo("SCANIA");
v.setPlaca("HTR7848");
v.setAltura("5m");
v.setTipoCarga("Animal");
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
session.save(v);
session.getTransaction().commit();
}
}
HibernateUtil.java
package util;
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;
}
}



Nenhum comentário:
Postar um comentário