Java Persistence API (Atualmente chamada de Jakarta Persistence) é uma API padrão da linguagem Java que descreve uma interface comum para frameworks de persistência de dados.

A JPA define um meio de mapeamento objeto-relacional para objetos Java simples e comuns, denominados beans de entidade.

Originou-se num projeto comum entre os desenvolvedores para se criar o padrão. Fortemente baseado nas ideias trazidas pelo Hibernate, tanto que o líder da primeira versão dessa especificação é o criador do framework.

Em resumo, é utilizado principalmente para conexão e acesso a banco de dados relacionais (SQL).

O que é o Spring Data JPA?

Spring Data é um projeto Spring Source de alto nível. Seu objetivo é unificar e facilitar o acesso aos diferentes tipos de armazenamentos de persistência, tanto sistemas de banco de dados relacionais quanto armazenamentos de dados NoSQL.

O Spring Data JPA lida com a maior parte da complexidade do acesso ao banco de dados baseado em JDBC e ORM (Mapeamento Objeto Relacional). incluindo seus próprios recursos, como a implementação sem código do padrão de repositório e a criação de consultas de banco de dados a partir do nome do método.

Ele reduz o código clichê exigido pelo JPA. Isso torna a implementação de sua camada de persistência mais fácil e rápida, sempre visando melhorar a implementação de camadas de acesso a dados, reduzindo o esforço à quantidade necessária.

Recursos da JPA

Existem três recursos principais do Spring Data JPA:

👨‍💻 Exemplo prático

public interface PessoaRepository extends JPARepository<Pessoa, Long>   
{
	// Suas implementações vem aqui
	public Optional<Pessoa> findByName(String name);
}