O processo de mapear objetos Java para tabelas em Banco de Dados e vice-versa é chamado de "Object-Relational Mapping" (ORM) ou Mapeamento Objeto-Relacional.

A JPA é uma das possibilidades para o Mapeamento Objeto-Relacional. JPA é uma especificação e atualmente várias implementações estão disponíveis, entre elas Hibernate, EclipseLink e Apache OpenJPA. No entanto, a implementação de referência da JPA é o EclipseLink, ou seja, todos fornecedores podem se basear no EclipseLink para criar suas próprias implementações. EclipseLink também garante que tudo que está especificado na JPA está implementado no EclipseLink.

JPA também permite ao desenvolvedor mapear, armazenar, atualizar e recuperar informações de uma base de dados relacional para objetos Java e o contrário também é permitido.

Na especificação da JPA também temos a definição de alguns conceitos importantes como: Entidades que são os mapeamentos das tabelas do Banco de Dados, Atributos que equivalem as colunas do Banco de Dados, Relacionamentos entre entidades através de anotações como @OneToOne, @OneToMany, @ManyToOne, @ManyToMany, EntityManager que é responsável por prover operações do Banco de dados e também para o Banco de Dados, encontrar objetos, persisti-los, remove-los, etc, e por fim temos também a Unidade de Persistência (Persistence Units) que define as propriedades de conexão com o banco de dados.

EclipseLink

O EclipseLink é um Projeto da Eclipse Fundation de código fonte aberto que permite aos desenvolvedores Java interagirem com vários tipos de serviços de informação como Banco de Dados, Web Services, Objetos XML, EIS, etc. Sendo assim, EclipseLink não implementa apenas o padrão JPA, mas também outros padrões como JAXB, JCA e SDO.

O EclipseLink é baseado no TopLink na qual a Oracle contribuiu com o código-fonte para criar o projeto EclipseLink. Pode-se dizer que o EclipseLink evoluiu ao ponto de ser uma ferramenta superior ao TopLink. É dito que as próximas versões do TopLink incluirão o EclipseLink, assim como a próxima versão do Oracle Application Server.

Para utilizar o EclipseLink é bastante simples, basta baixar o EclipseLink que está disponível em http://www.eclipse.org/eclipselink/downloads/. Em seguida, na plataforma Eclipse, basta referenciar os jars: javax.persistence_2.0.0.v200911271158.jar e eclipselink.jar

Após isso basta criar uma pasta META-INF dentro da pasta src do nosso projeto e adicionar o nosso arquivo persistence.xml que possui todas as configurações do nosso Banco de Dados. Na próxima seção vamos instalar e configurar o EclipseLink num projeto Web.

Instalando e Configurando EclipseLink

Primeiramente devemos baixar o EclipseLink em http://www.eclipse.org/eclipselink/downloads/. Descompacte os arquivos numa pasta e vamos extrair dois jars são eles: eclipselink.jar e javax.persistence.jar. Talvez os nomes possam mudar um pouco, mas sempre terão os nomes eclipselink e java.persistence.

Agora vamos para o Eclipse configurar o nosso projeto Web para usar o EclipseLink. Primeiramente dentro da plataforma Eclipse clique com o botão direito do mouse na janela Package Explorer e vá em New e Other conforme ilustra a imagem abaixo:

Criando um novo projeto no eclipse.

Figura 1: Criando um novo projeto no eclipse.

Na janela que se abre selecione Web e por fim Dynamic Web Project.

Selecionando um projeto Web.

Figura 2: Selecionando um projeto Web.

Após isso clique em Next. Na janela posterior digite o nome do projeto e clique em Next.

Selecionando um projeto Web.

Figura 3: Criando um projeto web.

Agora apenas clique em Next e deixe as configurações conforme ilustra a janela abaixo:

Configurações do projeto.

Figura 4: Configurações do projeto.

Na janela Web Module também não é necessário configurar nada, basta deixar as configurações padrão e clicar em Finish.

Configurando o Web Module.

Figura 5: Configurando o Web Module.

Agora o nosso projeto está criado e pronto para ser configurado. Podemos verificar o projeto aparecendo no lado esquerdo da tela.

 Projeto criado e aparecendo na janela Package Explorer.

Figura 6: Projeto criado e aparecendo na janela Package Explorer.

Para configurarmos o framework de persistência EclipseLink na plataforma Eclipse existem diferentes maneiras, uma delas é colocarmos os jars na pasta “WebContent -> WEB-INF -> lib”.

Colocando os jars na pasta lib

Figura 7: Colocando os jars na pasta lib.

Agora precisamos colocar os jars no Build Path do nosso projeto. Primeiramente clique com o botão direito do mouse no nome do projeto e clique em “Properties” conforme ilustra a figura abaixo:

Acessando as propriedades do projeto

Figura 8: Acessando as propriedades do projeto.

Agora acesse o Menu esquerdo da tela “Java Build Path” e a aba “Libraries”.

Acessando as bibliotecas do Java Build Path

Figura 9: Acessando as bibliotecas do Java Build Path.

Clique no botão “Add Jars...” na parte direita da tela para selecionarmos os Jars que estão disponíveis para o projeto. Após isso, na janela que é aberta vá até a pasta lib do projeto e adicione os jars disponíveis, por fim clique em OK.

Adicionando a bibliotecas ao projeto

Figura 10: Adicionando a bibliotecas ao projeto.

Para o nosso projeto ficar completamente pronto para receber as entidades JPA e todas as suas classes necessárias precisamos agora criar o nosso arquivo persistence.xml que será responsável por configurar o acesso ao Banco do EclipseLink. Portanto, crie o arquivo abaixo na pasta src/META-INF:

Listagem 1: Arquivo de persistência do projeto com configurações do banco de dados e das entidades.

<?xml version="1.0" encoding="UTF-8" ?>
<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"
  version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
  <persistence-unit name="portalpersistenceunit" transaction-type="RESOURCE_LOCAL">
	<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
	
	<class>primeiroexemplo.banco.Endereco</class>
	
	
    <properties>
      <property name="javax.persistence.jdbc.driver" 
      	value="org.postgresql.Driver" />
      <property name="javax.persistence.jdbc.url"
        value="jdbc:postgresql://localhost:5432/BancoDeDados" />
      <property name="javax.persistence.jdbc.user" 
      	value="usuariodefault" />
      <property name="javax.persistence.jdbc.password" 
      	value="senhadefault" />      
    </properties>
    
  </persistence-unit>
</persistence>

No exemplo acima podemos notar que existe uma classe (Entidade) de exemplo mapeada e também configurações de conexão com o nosso Banco de Dados.

Assim encerramos a configuração do nosso projeto Web utilizando persistência de dados com o EclipseLink. Vale ressaltar que para utilizar o EclipseLink não precisa ser necessariamente um projeto Web. Poderíamos utilizar o EclipseLink num projeto Java normal que utilize Swing por exemplo.

O exemplo abaixo mostra a imagem de um projeto Java utilizando JPA com EclipseLink.

Configuração de um projeto Java utilizando EclipseLink

Figura 11: Configuração de um projeto Java utilizando EclipseLink.

Na imagem acima podemos notar que esse projeto Java possui várias entidades mapeadas no pacote “exemplo.banco”, e uma classe de teste em “exemplo.teste” que efetivamente testa se a conexão com o Banco de Dados está realmente funcionando. Além disso, podemos notar que a pasta lib possui as bibliotecas necessárias para que possamos utilizar a persistência com EclipseLink que são as bibliotecas eclipselink.jar e javax.persistence. Também temos o postgresql.jar que é um driver de conexão com o banco de dados postgre que deve ser configurado no arquivo persistence.xml. Podemos notar que o arquivo persistence.xml está disponível na pasta src/META-INF.

Com essas configurações também já é possível utilizar a persistência com JPA e EclipseLink.

Conclusão

O EclipseLink é um projeto Java de código fonte aberto utilizado por diversas organizações no mundo. Uma das vantagens do EclipseLink sobre os outros é que ele implementa toda a especificação JPA e é considerado o projeto de referência, ou seja, todos fornecedores podem se basear no EclipseLink para criar suas próprias implementações e ela também garante que tudo que tem na especificação está devidamente implementado. Neste artigo estudamos o que é o JPA e EclipseLink, quais são algumas de suas características gerais e vantagens em utilizá-lo. Também vimos um exemplo prático completo de como instalar e configurar o EclipseLink na plataforma de desenvolvimento Eclipse utilizando o EclipseLink tanto num projeto Web quanto num projeto Java normal. Por fim, vimos um exemplo completo de um dos arquivos de configuração do EclipseLink mostrando as configurações com o Banco de dados e a configuração das entidades no arquivo.

Bibliografia

  1. Eclipse Link Home
  2. JPA 2.0 with EclipseLink
  3. Eclipse Download