One-to-Many Many-to-One Many-to-Many

Propaganda

One-to-Many

Many-to-One

Many-to-Many

Relacionamento One-to-Many

Relacionamento Many-to-One

Relacionamento Many-to-Many

Relacionamento Many-to-Many
 Hibernate não aceita identificador composto.
 Solução: criação de uma classe do tipo identificador.

Classe Pessoa

Classe Veiculo

Classe PossuiVeiculoPK

Classe PossuiVeiculo

Tabela por classe concreta

Tabela por hierarquia

Tabela por subclasse

Tabela por classe concreta
 Criada uma tabela/classe independente para cada
herança.

Tabela por classe concreta
 Classe Pessoa

Tabela por classe concreta
 Classe Professor

Tabela por classe concreta
 Classe Aluno

Tabela por hierarquia
 Todos os atributos da classe mãe e das classes filhas são
armazenados em uma única tabela.
 Propriedades not null não são permitidas para as
subclasses.
 Coluna especial discriminator, utilizada internamente
pelo Hibernate para definir o tipo do objeto.

Tabela por hierarquia
 Classe Pessoa

Tabela por hierarquia
 Classe Professor

Tabela por hierarquia
 Classe Aluno

Tabela por subclasse
 Cada classe em uma tabela
diferente.
 As classes filhas possuem
apenas os elementos que
não são herdados.

Tabela por subclasse
 Classe Pessoa

Tabela por subclasse
 Classe Professor

Tabela por subclasse
 Classe Aluno

Criteria Query API

SQL Nativo
HQL
(Hibernate Query Language)


Criteria Query API
 Conjunto de classes para criação de querys em Java.
 Querys definidas programaticamente.
 Independência do banco de dados (dialeto SQL)

http://ajava.org/online/hibernate3api/org/hiberna
te/Criteria.html#add(org.hibernate.criterion.
Criterion)

Criteria Query API
Public Lista Consulta () {
List lista = new List();
this.session = HibernateUtil.getInstance();
Criteria cri = session.createCriteria(Pessoa.class);
cri.add(Restriction.eq(“codPessoa”,1);
cri.addOrder.asc(“nome”);
lista = cri.list();
tx.commit();
sessao.close();
return lista;
}

SQL Nativo
 Faz uso do SQL nativo das consultas SQL
tradicionais.
Public Lista Consulta () {
List lista = new List();
Session sessao = HibernateUtility.getSession();
List lista = sessao.createSQLQuery("SELECT * FROM
CATS") .list();
tx.commit();
sessao.close();
return lista;
}

HQL (Hibernate Query Language)
 Extensão do SQL
 Faz pesquisa em objetos
 Pesquisa feita em objetos
 Não é necessário selecionar colunas do banco de
dados
 Um select * from Turma em SQL, vira select
Turma em HQL

HQL (Hibernate Query Language)
Public Lista Consulta () {
List lista = new List();
Session sessao = HibernateUtility.getSession();
Transaction tx = sessao.beginTransaction();
Query select = sessao.createQuery("from Turma as turma
where turma.nome = :nome");
select.setString("nome", "Jornalismo");
List lista = select.list();
tx.commit();
sessao.close();
return lista;
}

WWW.HIBERNATE.ORG

Bauer C, King G. Hibernate in action, Vol.1.
Greenwich, CT: Manning Publications Co.; 2004.

GONÇALVES, Edson. Desenvolvendo aplicações web
com jsp, servlets, javaserver faces, hibernate, ejb 3
persistence e ajax. Rio de Janeiro: Ciência Moderna,
2007.

LINHARES, Maurício. Introdução ao Hibernate 3.
Grupo de usuários Java. Disponível em
<http://www.guj.com.br/content/articles/hibernate/int
ruducao_hibernate3_guj.pdf >. Acesso em 2009.

Mapeie as tabelas do Diagrama de Entidade
Relacionamento(DER) abaixo.

Crie um sistema que cadastra, altere, consulte e delete dados de
um banco de dados, utilizando a ferramenta de mapeamento
objeto relacional hibernate para o seguinte caso:
 Uma revenda de veículos a qual ela mesma instala os opcionais nos




veículos, ela necessita de um sistema que relacione os opcionais com
os veículos, ou seja, quais opcionais foram instalados no veiculo.
Para os opcionais é necessário armazenar informações sobre o
fabricante, e para os veículos é necessário armazenar informações
sobre a montadora.
Observação: fabricante e montadoras devem ser duas tabelas
distintas.
Para esse exercício crie também o modelo de entidade
relacionamento.
Coloque nas tabelas os dados que você imagina que devem ser
armazenados.

Herança
Download