Spring Data JPA, parte da família Spring Data, facilita a implementação de repositórios baseados em JPA. Este módulo trata do suporte aprimorado para camadas de acesso a dados baseadas em JPA. Facilita a construção de aplicativos com tecnologia Spring que usam tecnologias de acesso a dados.
Implementar uma camada de acesso a dados de um aplicativo tem sido complicado há algum tempo. Muito código padrão precisa ser escrito para executar consultas simples, bem como realizar paginação e auditoria. Spring Data JPA visa melhorar significativamente a implementação de camadas de acesso a dados, reduzindo o esforço ao valor realmente necessário. Como desenvolvedor, você escreve suas interfaces de repositório, incluindo métodos de localização personalizados, e o Spring fornecerá a implementação automaticamente.
Implementação de métodos CRUD para Entidades JPA
Geração de consulta dinâmica a partir de nomes de métodos de consulta
Acionamento transparente de JPA NamedQueries por métodos de consulta
Classes base de domínio de implementação fornecendo propriedades básicas
Suporte para auditoria transparente (criada, última alteração)
Possibilidade de integrar código de repositório personalizado
Integração fácil do Spring com namespace personalizado
Este projeto é regido pelo Código de Conduta Spring. Ao participar, espera-se que você cumpra este código de conduta. Por favor, relate comportamento inaceitável para [email protected].
Aqui está um teaser rápido de um aplicativo usando Spring Data Repositories em Java:
public interface PersonRepository extends CrudRepository < Person , Long > {
List < Person > findByLastname ( String lastname );
List < Person > findByFirstnameLike ( String firstname );
}
@ Service
public class MyService {
private final PersonRepository repository ;
public MyService ( PersonRepository repository ) {
this . repository = repository ;
}
public void doWork () {
repository . deleteAll ();
Person person = new Person ();
person . setFirstname ( "Oliver" );
person . setLastname ( "Gierke" );
repository . save ( person );
List < Person > lastNameResults = repository . findByLastname ( "Gierke" );
List < Person > firstNameResults = repository . findByFirstnameLike ( "Oli%" );
}
}
@ Configuration
@ EnableJpaRepositories ( "com.acme.repositories" )
class AppConfig {
@ Bean
public DataSource dataSource () {
return new EmbeddedDatabaseBuilder (). setType ( EmbeddedDatabaseType . H2 ). build ();
}
@ Bean
public JpaTransactionManager transactionManager ( EntityManagerFactory emf ) {
return new JpaTransactionManager ( emf );
}
@ Bean
public JpaVendorAdapter jpaVendorAdapter () {
HibernateJpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter ();
jpaVendorAdapter . setDatabase ( Database . H2 );
jpaVendorAdapter . setGenerateDdl ( true );
return jpaVendorAdapter ;
}
@ Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory () {
LocalContainerEntityManagerFactoryBean lemfb = new LocalContainerEntityManagerFactoryBean ();
lemfb . setDataSource ( dataSource ());
lemfb . setJpaVendorAdapter ( jpaVendorAdapter ());
lemfb . setPackagesToScan ( "com.acme" );
return lemfb ;
}
}
Adicione a dependência do Maven:
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-jpa</ artifactId >
< version >${version}</ version >
</ dependency >
Se você preferir os snapshots mais recentes da próxima versão principal, use nosso repositório de snapshots Maven e declare a versão de dependência apropriada.
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-jpa</ artifactId >
< version >${version}-SNAPSHOT</ version >
</ dependency >
< repository >
< id >spring-snapshot</ id >
< name >Spring Snapshot Repository</ name >
< url >https://repo.spring.io/snapshot</ url >
</ repository >
Está com problemas com Spring Data? Adoraríamos ajudar!
Verifique a documentação de referência e Javadocs.
Aprenda os fundamentos do Spring – Spring Data é baseado no Spring Framework, verifique o site spring.io para obter uma grande variedade de documentação de referência. Se você está apenas começando com o Spring, experimente um dos guias.
Se você estiver atualizando, verifique as notas de versão do Spring Data JPA e role para baixo até aquela que você está considerando. Veja os detalhes lá. (Confira também a versão estável mais recente)
Faça uma pergunta - monitoramos stackoverflow.com em busca de perguntas marcadas com spring-data-jpa
. Você também pode conversar com a comunidade no Gitter.
Relate bugs com Spring Data JPA no rastreador de problemas do GitHub.
Spring Data usa GitHub como sistema de rastreamento de problemas para registrar bugs e solicitações de recursos. Se você quiser levantar um problema, siga as recomendações abaixo:
Antes de registrar um bug, pesquise no rastreador de problemas para ver se alguém já relatou o problema.
Se o problema ainda não existir, crie um novo problema.
Forneça o máximo de informações possível com o relatório de problemas, gostamos de saber a versão do Spring Data que você está usando e a versão da JVM, rastreamentos de pilha completos e quaisquer informações de configuração relevantes.
Se você precisar colar o código ou incluir um rastreamento de pilha, formate-o como código usando crase triplo.
Se possível, tente criar um caso de teste ou projeto que replique o problema. Anexe um link ao seu código ou um arquivo compactado contendo seu código. Use um banco de dados na memória, se possível, ou configure o banco de dados usando Testcontainers.
Você não precisa compilar a partir do código-fonte para usar o Spring Data (binários em repo.spring.io), mas se quiser experimentar o que há de melhor e mais recente, o Spring Data pode ser facilmente compilado com o wrapper maven. Você também precisa do JDK 17 ou superior.
$ ./mvnw clean install
Se quiser construir com o comando mvn
normal, você precisará do Maven v3.8.0 ou superior.
Consulte também CONTRIBUTING.adoc se desejar enviar solicitações pull e, em particular, assine o Contrato do Colaborador antes de sua primeira alteração não trivial.
Construir a documentação também constrói o projeto sem executar testes.
$ ./mvnw clean install -Pantora
A documentação gerada está disponível em target/antora/site/index.html
.
O site spring.io contém vários guias que mostram como usar o Spring Data passo a passo:
Acessando dados com JPA: Aprenda como trabalhar com persistência de dados JPA usando Spring Data JPA.
Acessando dados JPA com REST é um guia para criar um serviço web REST expondo dados armazenados com JPA por meio de repositórios.
Exemplos de dados do Spring contêm projetos de exemplo que explicam recursos específicos com mais detalhes.
Spring Data JPA é um software de código aberto lançado sob a licença Apache 2.0.