Passo a Passo para
o mundo de JavaServer Faces – Parte 02
Por: Eduardo Bregaida
Hibernate e Java Persistence API – JPA
Hibernate
É
um framework de mapeamento objeto relacional mais utilizado no universo Java,
na versão do Hibernate 2, era muito trabalhoso criar seus mapeamentos, um XML
enorme, mas com a vinda do Java 5 e as anotações, tudo foi simplificado, na versão
do Hibernate 3, já utiliza estes recursos, e não é compatível com sua versão
anterior, assim se tornando mais poderoso, pois, mantendo compatibilidade, o
framework não poderia crescer muito sem ”quebrar” elementos de sua versão
anterior.
Basicamente permite fazer a persistência de objetos em banco de dados
relacionais de modo transparente e para qualquer aplicação Java.
Sendo assim, ao invés de ter uma perca de tempo escrevendo códigos SQL e
mesclando em seu código, mapear resultados de suas consultas para objetos, o
desenvolvedor só se preocupará com seus objetos.
Com o Hibernate podemos:
- Criar a tabela de
sua base de dados;
- Criar o objeto em
que seu estado irá ser persistido;
- Relacionar por
anotações os relacionamentos e propriedades do objeto aos campos de sua tabela;
- Criar a classe DAO
que persistirá seu objeto
- Criar um simples
arquivo para que o Hibernate conecte a seu banco de dados.
O JPA
O
JPA é um framework mantido pelo JCP, sendo um de seus criadores o mesmo da
especificação do Hibernate, este framework é utilizado na camada de
persistência, é uma “casca”, logo abaixo deste framework pode se encontrar seu
framework de persistência preferido no nosso caso o Hibernate, mas poderia ser
o Top Link por exemplo.
A figura 2 representa as camadas, sendo o JPA, logo abaixo o Hibernate,
encapsulado o JDBC e finalmente a Base de Dados.
Figura 2 – www.caelum.com.br
JPA nasceu no JCP para ser criado uma especificação de persistencia já que o
JDP não foi um projeto de grande sucesso e os Entity Beans do EJB eram
extremamente difíceis de lidar, foi especificado na JSR 220, standalone ou gerenciado pelo servidor, a não
ser que o desenvolvedor opte o JPA não necessita de XML para criar os
mapeamentos.
Gerenciador de estados:
- Transiente, no qual o objeto precisa ser persistido;
- Detached, no qual o objeto deverá ter o estado de merged para persistir;
-
Managed, no qual o objeto sempre
será persistido.