Spring Data JPA, parte de la familia más amplia de Spring Data, facilita la implementación de repositorios basados en JPA. Este módulo trata sobre el soporte mejorado para capas de acceso a datos basadas en JPA. Facilita la creación de aplicaciones impulsadas por Spring que utilizan tecnologías de acceso a datos.
Implementar una capa de acceso a datos de una aplicación ha sido engorroso durante bastante tiempo. Es necesario escribir demasiado código repetitivo para ejecutar consultas simples, así como realizar paginación y auditoría. Spring Data JPA tiene como objetivo mejorar significativamente la implementación de capas de acceso a datos al reducir el esfuerzo a la cantidad que realmente se necesita. Como desarrollador, usted escribe las interfaces de su repositorio, incluidos los métodos de búsqueda personalizados, y Spring proporcionará la implementación automáticamente.
Implementación de métodos CRUD para Entidades JPA
Generación de consultas dinámicas a partir de nombres de métodos de consulta.
Activación transparente de JPA NamedQueries mediante métodos de consulta
Clases base de dominio de implementación que proporcionan propiedades básicas.
Soporte para auditoría transparente (creada, modificada por última vez)
Posibilidad de integrar código de repositorio personalizado
Fácil integración de Spring con espacio de nombres personalizado
Este proyecto se rige por el Código de conducta de Spring. Al participar, se espera que respete este código de conducta. Informe el comportamiento inaceptable a [email protected].
A continuación se muestra un adelanto rápido de una aplicación que utiliza Spring Data Repositories en 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 ;
}
}
Agregue la dependencia de Maven:
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-jpa</ artifactId >
< version >${version}</ version >
</ dependency >
Si prefiere las últimas instantáneas de la próxima versión principal, utilice nuestro repositorio de instantáneas de Maven y declare la versión de dependencia adecuada.
< 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 >
¿Tiene problemas con Spring Data? ¡Nos encantaría ayudar!
Consulte la documentación de referencia y Javadocs.
Aprenda los conceptos básicos de Spring: Spring Data se basa en Spring Framework; consulte el sitio web spring.io para obtener una gran cantidad de documentación de referencia. Si recién estás comenzando con Spring, prueba una de las guías.
Si está actualizando, consulte las notas de la versión de Spring Data JPA y desplácese hacia abajo hasta la que está considerando. Vea los detalles allí. (Consulte también la última versión estable)
Haga una pregunta: supervisamos stackoverflow.com en busca de preguntas etiquetadas con spring-data-jpa
. También puedes chatear con la comunidad en Gitter.
Informe errores con Spring Data JPA en el rastreador de problemas de GitHub.
Spring Data utiliza GitHub como sistema de seguimiento de problemas para registrar errores y solicitudes de funciones. Si desea plantear un problema, siga las recomendaciones a continuación:
Antes de registrar un error, busque en el rastreador de problemas para ver si alguien ya informó el problema.
Si el problema aún no existe, cree uno nuevo.
Proporcione la mayor cantidad de información posible con el informe de problemas; nos gustaría saber la versión de Spring Data que está utilizando y la versión de JVM, los seguimientos completos de la pila y cualquier información de configuración relevante.
Si necesita pegar código o incluir un seguimiento de pila, formatéelo como código usando triple acento grave.
Si es posible, intente crear un caso de prueba o un proyecto que replique el problema. Adjunte un enlace a su código o un archivo comprimido que contenga su código. Utilice una base de datos en memoria si es posible o configure la base de datos utilizando Testcontainers.
No es necesario compilar desde el código fuente para usar Spring Data (binarios en repo.spring.io), pero si desea probar lo último y lo mejor, Spring Data se puede compilar fácilmente con el contenedor maven. También necesitas JDK 17 o superior.
$ ./mvnw clean install
Si desea compilar con el comando mvn
normal, necesitará Maven v3.8.0 o superior.
Consulte también CONTRIBUTING.adoc si desea enviar solicitudes de extracción y, en particular, firme el Acuerdo de colaborador antes de realizar su primer cambio no trivial.
La creación de la documentación también construye el proyecto sin ejecutar pruebas.
$ ./mvnw clean install -Pantora
La documentación generada está disponible en target/antora/site/index.html
.
El sitio spring.io contiene varias guías que muestran cómo usar Spring Data paso a paso:
Acceso a datos con JPA: aprenda a trabajar con la persistencia de datos JPA utilizando Spring Data JPA.
Acceder a datos JPA con REST es una guía para crear un servicio web REST que expone datos almacenados con JPA a través de repositorios.
Spring Data Ejemplos contiene proyectos de ejemplo que explican características específicas con más detalle.
Spring Data JPA es un software de código abierto publicado bajo la licencia Apache 2.0.