Spring Data JPA, Teil der größeren Spring Data-Familie, erleichtert die Implementierung von JPA-basierten Repositorys. Dieses Modul befasst sich mit der erweiterten Unterstützung für JPA-basierte Datenzugriffsschichten. Es erleichtert die Erstellung von Spring-basierten Anwendungen, die Datenzugriffstechnologien nutzen.
Die Implementierung einer Datenzugriffsschicht einer Anwendung war lange Zeit mühsam. Es muss zu viel Boilerplate-Code geschrieben werden, um einfache Abfragen sowie Paginierung und Prüfung durchzuführen. Ziel von Spring Data JPA ist es, die Implementierung von Datenzugriffsschichten deutlich zu verbessern, indem der Aufwand auf das tatsächlich benötigte Maß reduziert wird. Als Entwickler schreiben Sie Ihre Repository-Schnittstellen, einschließlich benutzerdefinierter Finder-Methoden, und Spring stellt die Implementierung automatisch bereit.
Implementierung von CRUD-Methoden für JPA-Entitäten
Dynamische Abfragegenerierung aus Abfragemethodennamen
Transparente Auslösung von JPA NamedQueries durch Abfragemethoden
Basisklassen der Implementierungsdomäne, die grundlegende Eigenschaften bereitstellen
Unterstützung für transparentes Auditing (erstellt, zuletzt geändert)
Möglichkeit zur Integration von benutzerdefiniertem Repository-Code
Einfache Spring-Integration mit benutzerdefiniertem Namespace
Für dieses Projekt gilt der Spring Code of Conduct. Durch Ihre Teilnahme wird von Ihnen erwartet, dass Sie diesen Verhaltenskodex einhalten. Bitte melden Sie inakzeptables Verhalten an [email protected].
Hier ist ein kurzer Teaser einer Anwendung, die Spring Data Repositories in Java verwendet:
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 ;
}
}
Fügen Sie die Maven-Abhängigkeit hinzu:
< dependency >
< groupId >org.springframework.data</ groupId >
< artifactId >spring-data-jpa</ artifactId >
< version >${version}</ version >
</ dependency >
Wenn Sie lieber die neuesten Snapshots der kommenden Hauptversion möchten, verwenden Sie unser Maven-Snapshot-Repository und deklarieren Sie die entsprechende Abhängigkeitsversion.
< 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 >
Haben Sie Probleme mit Spring Data? Wir helfen gerne!
Überprüfen Sie die Referenzdokumentation und Javadocs.
Lernen Sie die Spring-Grundlagen kennen – Spring Data baut auf dem Spring Framework auf. Auf der spring.io-Website finden Sie eine Fülle von Referenzdokumentationen. Wenn Sie gerade erst mit dem Frühling beginnen, probieren Sie einen der Ratgeber aus.
Wenn Sie ein Upgrade durchführen, sehen Sie sich die Versionshinweise zu Spring Data JPA an und scrollen Sie nach unten zu der Version, die Sie in Betracht ziehen. Die Details finden Sie dort. (Schauen Sie sich auch die neueste stabile Version an)
Stellen Sie eine Frage – wir überwachen stackoverflow.com auf Fragen mit dem Tag spring-data-jpa
. Sie können auch mit der Community auf Gitter chatten.
Melden Sie Fehler mit Spring Data JPA im GitHub Issue Tracker.
Spring Data nutzt GitHub als Problemverfolgungssystem, um Fehler und Funktionsanfragen aufzuzeichnen. Wenn Sie ein Problem ansprechen möchten, befolgen Sie bitte die folgenden Empfehlungen:
Bevor Sie einen Fehler melden, durchsuchen Sie bitte den Issue-Tracker, um zu sehen, ob jemand das Problem bereits gemeldet hat.
Wenn das Problem noch nicht vorhanden ist, erstellen Sie ein neues Problem.
Bitte geben Sie mit dem Problembericht so viele Informationen wie möglich an. Wir möchten gerne wissen, welche Version von Spring Data Sie verwenden, sowie die JVM-Version, vollständige Stack-Traces und alle relevanten Konfigurationsinformationen.
Wenn Sie Code einfügen oder einen Stack-Trace einfügen müssen, formatieren Sie ihn mit dreifachem Backtick als Code.
Versuchen Sie nach Möglichkeit, einen Testfall oder ein Projekt zu erstellen, das das Problem reproduziert. Hängen Sie einen Link zu Ihrem Code oder eine komprimierte Datei an, die Ihren Code enthält. Verwenden Sie nach Möglichkeit eine In-Memory-Datenbank oder richten Sie die Datenbank mithilfe von Testcontainern ein.
Sie müssen nicht aus dem Quellcode erstellen, um Spring Data (Binärdateien in repo.spring.io) zu verwenden. Wenn Sie jedoch die neuesten und besten Versionen ausprobieren möchten, können Sie Spring Data problemlos mit dem Maven-Wrapper erstellen. Sie benötigen außerdem JDK 17 oder höher.
$ ./mvnw clean install
Wenn Sie mit dem regulären mvn
-Befehl erstellen möchten, benötigen Sie Maven v3.8.0 oder höher.
Sehen Sie sich auch CONTRIBUTING.adoc an, wenn Sie Pull-Anfragen einreichen möchten, und unterzeichnen Sie insbesondere die Mitwirkendenvereinbarung vor Ihrer ersten nicht trivialen Änderung.
Durch die Erstellung der Dokumentation wird auch das Projekt erstellt, ohne dass Tests ausgeführt werden müssen.
$ ./mvnw clean install -Pantora
Die generierte Dokumentation ist unter target/antora/site/index.html
verfügbar.
Die Website spring.io enthält mehrere Anleitungen, die Schritt für Schritt zeigen, wie Sie Spring Data verwenden:
Zugriff auf Daten mit JPA: Erfahren Sie, wie Sie mit Spring Data JPA mit JPA-Datenpersistenz arbeiten.
„Zugriff auf JPA-Daten mit REST“ ist eine Anleitung zum Erstellen eines REST-Webdienstes, der mit JPA gespeicherte Daten über Repositorys verfügbar macht.
Spring Data Examples enthält Beispielprojekte, die bestimmte Funktionen detaillierter erläutern.
Spring Data JPA ist Open-Source-Software, die unter der Apache 2.0-Lizenz veröffentlicht wird.