A JPA (Java Persistence API), especificação Java EE para ORM (mapeamento objeto relacional), tem sido amplamente adotada nos mais diversos sistemas que necessitam de persistência de dados. Esta poderosa API traz uma grande gama de recursos e facilidades, mas exige um estudo aprofundado se estivermos buscando compreender os métodos disponibilizados por ela e extrair o máximo de suas funcionalidades.

Com base nisso, este artigo visa guiar leitores que já tiveram algum contato com a API a um entendimento mais amplo do ciclo de vida das entidades e o funcionamento do PersistenceContext que, como veremos no decorrer desse estudo, é essencial para a compreensão dos métodos do EntityManager aqui estudados: persist(), merge() e find().

Por ser uma API bastante extensa, esse artigo não tem como objetivo cobrir todas as suas particularidades, mas sim focar nos conceitos e nomenclaturas que irão auxiliar o leitor em seus futuros estudos. Para alcançarmos tal objetivo, os conceitos apresentados serão acompanhados de exemplos, construídos passo a passo, visando encorajar o leitor a codificar juntamente com a leitura. Esses exemplos serão construídos em um projeto criado no Eclipse, mas que facilmente pode ser adaptado para sua IDE de preferência. Neste projeto iremos utilizar o Hibernate como implementação da JPA e o HSQLDB como banco de dados, por ser livre de instalação e configuração. A configuração da JPA, assim como a do Hibernate, será ilustrada aqui, contudo o detalhamento mais profundo da configuração destes está além do escopo desse artigo.

Os exemplos aqui apresentados são baseados na manipulação de uma entidade bastante simples chamada Pessoa, que veremos em detalhes nos próximos tópicos. Nestes exemplos nem sempre iremos exibir a classe inteira na listagem, focando apenas no trecho de código que exemplifica o conceito abordado e que seja suficiente para o leitor entender seu funcionamento.

Além disto, trataremos aqui sobre conceitos não triviais, principalmente para leitores sem contato prévio com a JPA. Desta forma, o leitor que sentir a necessidade de um embasamento inicial maior, recomendamos a leitura do artigo “Persistindo dados em Java com JPA”, publicado na Easy Java Magazine 36.

Criando e configurando o projeto exemplo

Para construirmos os exemplos que irão auxiliar no entendimento dos conceitos discutidos, vamos utilizar o Eclipse como IDE, mas o leitor deve se sentir livre para utilizar a ferramenta de desenvolvimento que esteja mais habituado.

Criando um novo projeto no Eclipse

No momento de inicialização do Eclipse precisamos, primeiramente, selecionar o workspace em que iremos trabalhar. O workspace é um diretório onde serão armazenadas informações dos nossos projetos e preferências do Eclipse. Você pode utilizar o diretório sugerido por ele, se preferir.

Para construirmos nossa aplicação de exemplo precisamos de um novo projeto, que pode ser criado a partir do menu File > New > Java Project. Feito isso, defina um nome para o seu projeto. Se preferir, altere o diretório onde seu projeto será armazenado. Por fim, clique em Finish.

Dentro do nosso novo projeto temos um diretório com o nome src. É neste diretório que iremos criar nossas classes e armazenar nossos arquivos de configuração.

Adicionando a JPA e o Hibernate no classpath

O primeiro passo é fazer o download do Hibernate no site oficial do framework, que pode ser consultado na seção Links. A última versão disponível até o momento da escrita deste artigo é a 4.3.5.

Após a descompactação do arquivo (que pode ser baixado nos formatos ZIP ou TGZ), é necessário adicionar os JARs que se encontram no diretório required ao classpath da sua aplicação. Além desses, é necessário também adicionar o JAR que se encontra no diretório jpa.

Para adicionar esses JARs ao seu projeto no Eclipse, clique com o botão direito no projeto e selecione Build Path > Configure Build Path. Na aba Libraries, clique em Add External JARs. Depois de selecionar os arquivos indicados, a aba Libraries do Build Path do seu projeto deve se parecer com a Figura 1.

Adicionando os JARs do Hibernate ao projeto no Eclipse

Figura 1. Adicionando os JARs do Hibernate ao projeto no Eclipse.

Adicionando o HSQLDB ao classpath

Precisamos agora configurar o banco de dados que iremos utilizar. Para facilitar esta etapa, vamos optar por um banco que armazena os dados em memória, chamado HSQLDB. O fato do banco ser em memória implica que a cada vez que executarmos nossas classes de teste, teremos uma nova instância (vazia) do banco. Para fazer o download do HSQLDB, acesse o site oficial, que pode ser consultado na seção Links. A última versão disponível até o momento da escrita deste artigo é a 2.3.2.

Após a descompactação do arquivo, haverá um arquivo chamado hsqldb.jar no diretório lib, e este deve ser adicionado ao classpath da sua aplicação. O processo de adicionar esse JAR ao seu projeto no Eclipse é análogo ao apresentado no subtópico anterior.

Configurando o persistence.xml

Toda aplicação que utiliza JPA necessita de um arquivo de configuração com o ...

Quer ler esse conteúdo completo? Tenha acesso completo