Back-End

15 mar, 2010

JPA 2.0 na Prática com Hibernate 3.5

Publicidade

Tenho recebido alguns questionamentos sobre Hibernate 3.5, ORM provider e JPA 2.0. Por isso resolvi escrever este artigo. Aguardo os comentários, dúvidas e críticas!

Preparação do ambiente de trabalho

Tenha por base o meu artigo JPA na Prática, faremos aqui similar no banco de
dados e  na ferramenta, porém haverá uma modificação na biblioteca JPA.

A  biblioteca JPA

O Hibernate é um ORM como o EclipseLink, muito utilizado no
desenvolvimento Web com Java, cuja versão 3.5 possui suporte a Java
Persistence API 2.0. Você pode baixá-la clicando
aqui
. Clique em Download, no menu lateral
esquerdo.

A versão, no momento em que escrevo, é a 3.5.0-CR-2 (ainda em
desenvolvimento).

Os arquivos que terá de baixar serão:

  • Hibernate Core
  • Hibernate JPAModelGen

Ao baixar os arquivos, descompacte-os. Você precisará das seguintes
bibliotecas:

  • hibernate3.jar
  • antlr-2.7.6.jar
  • commons-collections-3.1.jar
  • dom4j-1.6.1.jar
  • javassist-3.9.0.GA.jar
  • jta-1.1.jar
  • slf4j-api-1.5.8.jar
  • hibernate-jpa-2.0-api-1.0.0-CR-1.jar

Além destes arquivos, será necessário utilizar as bibliotecas da Simple
Logging Facade for Java
, SLF4J. Baixe o arquivo com todas as
bibliotecas da SLF4J aqui.

Descompacte o arquivo após baixá-lo. Você precisará das seguintes
bibliotecas:

  • slf4j-jdk14-1.5.11.jar
  • slf4j-log4j12-1.5.11.jar

O Projeto

O projeto para este pequeno tutorial é o mesmo do criado no artigo JPA na Prática Parte 1. Veja lá como fazê-lo.

As bibliotecas no projeto

Podemos tanto criar uma biblioteca de usuário, contendo todas elas
ou, simplesmente, adicionar todas ao seu projeto.

Figura 1
Bibliotecas do Hibernate 3.5 e SLF4J adicionadas ao projeto

Configurando o arquivo persistence.xml

Similar ao mostrado na JPA
2.0 na Prática Parte 2
,
no arquivo persistence.xml,
altere-o conforme a Listagem 1 abaixo:

Listagem 1 – O arquivo persistence.xml

<?xml version="1.0" encoding="UTF-8"?>

<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/persistence

http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

<persistence-unit name="JpaNaPratica" transaction-type="RESOURCE_LOCAL">

<class>br.com.integrator.Categoria</class>

<properties>

<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/jpapratica"></property>

<property name="javax.persistence.jdbc.user" value="edson"></property>

<property name="javax.persistence.jdbc.password" value="integrator"></property>

<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"></property>

<property name="hibernate.show_sql" value="true" />

<property name="hibernate.format_sql" value="true" />

<property name="hibernate.hbm2ddl.auto" value="create"/>

</properties>

</persistence-unit>

</persistence>

Infelizmente, nem todas as propriedades de persistence.xml
são padronizadas, conforme já dito no artigo JPA na Prática
Parte 2
. Para exibir a saída das instruções SQL geradas, assim
como outras informações, as seguintes propriedades foram  adicionadas ao
arquivo persistence.xml:

<property name="hibernate.show_sql" value="true" />

<property name="hibernate.format_sql" value="true" />

Para criar a tabela, utilizamos a seguinte adição:

<property name="hibernate.hbm2ddl.auto" value="create"/>

Testando o Projeto

Similar ao mostrado na JPA
2.0 na Prática Parte 2,
execute a classe com o método main()
e veja os resultados refletidos no banco de dados.

Hibernate ou EclipseLink?

Muitos me perguntam isso, querendo saber qual é o melhor. O ideal,
como sempre, é conhecer ambos e tirar as suas próprias conclusões. Em
JPA 2.0, ao menos por enquanto, no que foi mostrado, não há diferença.

Abraço a todos e até o próximo artigo.

*

Gostou do assunto? A iMasters Shop te ajuda a se aprofundar nos estudos!