Persistência com Spring Data JPA

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (7)  (0)

O artigo apresenta o projeto Spring Data JPA, lançado em 2011 e construído com base nos conceitos do padrão de projeto Repository, o que torna a programação do código de persistência muito mais simples e ágil.

Atenção: Esse artigo tem um Curso Complementar. Clique e assista!

De que se trata o artigo:

O artigo apresenta o projeto Spring Data JPA, lançado em 2011 e construído com base nos conceitos do padrão de projeto Repository, o que torna a programação do código de persistência muito mais simples e ágil.

Em que situação o tema é útil:

O Spring Data JPA é útil para desenvolvedores que fazem uso de persistência de dados em suas aplicações e procuram uma forma mais rápida, simples e eficaz de implementá-la.

Resumo DevMan:

O Spring é um framework Java que tem grande aceitação na área de desenvolvimento de sistemas. Embora não tenha sido lançado como um framework de persistência de dados, ele provê ferramentas que facilitam o desenvolvimento das classes que contêm as operações de CRUD, tanto com o uso de JDBC puro, como com algum framework de mapeamento objeto relacional (ORM).

O lançamento do projeto Spring Data JPA conseguiu ir além de apenas mais uma ferramenta de apoio a frameworks de persistência. Este é um poderoso projeto que tem tudo para ganhar espaço e se tornar uma das ferramentas mais adotadas para persistência de dados, transformando os códigos fontes em poucas linhas de muita eficácia.

Quando chega a hora de iniciar um novo projeto de software, a equipe de desenvolvimento começa a ter diversas dúvidas sobre o que usar. Escolher as ferramentas certas, para cada tipo de projeto, entre todas as disponíveis em Java, é sempre um processo bem difícil. Escolher um framework então pode complicar ainda mais a decisão de o que usar em um novo projeto. Os frameworks, às vezes, possuem um objetivo bem específico, como por exemplo: um framework de persistência tem a responsabilidade apenas de persistir dados; um framework MVC tem como finalidade a inclusão do padrão MVC no projeto; frameworks de interface com o usuário (UI) disponibilizam componentes para a camada de visualização. Mas felizmente, para os apreciadores do Spring Framework, este surge como uma solução que se adapta a vários tipos de projeto. Considerado uma ferramenta de fácil aprendizado, também disponibiliza uma vasta quantidade de APIs que podem ser usadas inclusive na integração com outros frameworks.

Os desenvolvedores do Spring estão sempre trabalhando para aperfeiçoar os recursos já disponíveis no framework, como também para adicionar novos recursos, que possam facilitar ainda mais o processo de desenvolvimento de aplicações. Entre esses processos, as operações de CRUD sempre foram um dos focos do Spring, sejam elas com uso de algum framework de persistência ou mesmo sem o uso deles. Para isso, algumas APIs foram disponibilizadas, como o JdbcTemplate, HibernateTemplate, JpaTemplate, entre outras.

As APIs de persistência sempre estiveram presentes no Spring Framework com a finalidade de facilitar o processo de implementação das classes direcionadas a operações de CRUD. Ainda não satisfeitos com as opções existentes no framework, os desenvolvedores do Spring lançaram nos primeiros meses de 2011 um novo projeto, chamado Spring Data JPA.

Este projeto tem como objetivo facilitar as operações de CRUD baseadas em implementações JPA 2, reduzindo o esforço do programador para a quantidade de código que realmente se faz necessária. A Java Persistence API, ou apenas JPA, é uma especificação Java (JSR 317) que deve ser seguida por frameworks de mapeamento objeto-relacional (ORM), como o Hibernate, TopLink ou IBatis. Ela padroniza um conjunto de classes e métodos que devem ser implementados pelos frameworks ORM que desejam seguir a especificação. A vantagem em adotar este padrão é que um framework pode ser trocado por outro sem que exista a necessidade de modificar as classes e métodos de persistência da aplicação.

O projeto Spring Data JPA, embora não seja um framework ORM, foi desenvolvido com base no padrão JPA 2 para trabalhar com qualquer framework que siga tal especificação. Ele é responsável pela implementação dos repositórios (camada de persistência de dados), oferecendo funcionalidades sofisticadas e comuns à maioria dos métodos de acesso a banco de dados. Ao programador, se abstrai a necessidade de criar classes concretas para os repositórios, sendo necessário apenas criar uma interface específica para cada classe de entidade, e nelas, estender a interface JpaRepository. Ao herdar a interface JpaRepository, dois propósitos são preenchidos: no primeiro, uma variedade de métodos como save(), delete(), findAll(), entre outros, são fornecidos; e no segundo, o reconhecimento desta interface como um bean do Spring, o que é útil para a injeção de dependência.

Entidade ou Tabela: É onde todas as informações inseridas em um banco de dados relacional são armazenadas. É uma estrutura formada por linhas e colunas onde cada linha consiste de pelo menos uma ou várias colunas.

Classe de Entidade: É uma classe do tipo Bean que faz referência a uma entidade do banco de dados, e cada instância desta entidade representa uma linha (registro ou tupla) na tabela (entidade).

Outra funcionalidade interessante se refere aos métodos de pesquisa. Em um projeto sem o uso de Spring Data, teríamos geralmente uma interface, e nela, alguns métodos de consulta seriam definidos. Estes métodos posteriormente seriam codificados em uma classe concreta. Quando se faz uso de Spring Data, basta incluir a assinatura do método de pesquisa na interface e adicionar a esta assinatura uma anotação do tipo @Query, com a respectiva consulta no formato JPQL. A implementação deste método será realizada automaticamente pelo Spring em tempo de execução.

Neste contexto, o artigo apresenta uma introdução ao Spring Data-JPA, demonstrando suas principais classes e interfaces. Para exemplificar seu uso, será desenvolvido um pequeno projeto que abordará sua configuração com o framework Hibernate e a implementação de alguns métodos de pesquisa usando os recursos disponibilizados pelo Spring Data. Para o leitor ter uma melhor compreensão do conteúdo tratado aqui, é aconselhável que já tenha um conhecimento básico de Spring e persistência com JPA.

Bean: É uma classe do tipo JavaBean, também conhecida como POJO (Plain Old Java Objects). Possui um construtor, atributos privados e os métodos getters e setters públicos.

Beans do Spring: Para o Spring, beans são classes gerenciadas por ele através de um container IoC (Inversion of Control). Estes beans estarão disponíveis para a aplicação sempre que ela precisar. O controle de instanciar e destruir tais beans é de responsabilidade do container IoC.

O projeto Spring Data JPA

Os desenvolvedores do Spring tentaram facilitar em muito a vida do programador que irá usar o Spring Data JPA em suas aplicações. Para isso, eles desenvolveram algumas classes e interfaces que reduzem a complexidade e a quantidade de código fonte que seria de responsabilidade do programador nas operações de CRUD.

"

A exibição deste artigo foi interrompida :(
Este post está disponível para assinantes MVP

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?