Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

Spring Framework Grundkurs

Spring Data und JPA

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Mit den Konzepten von Repositories nimmt Spring wesentlichen Aufwand aus dem Entwurf von Data Access Objects und schafft mit der Integration zu JPA dabei auch Unabhängigkeit von der jeweiligen Datenbank oder dem Framework.

Transkript

Neben der Abstraktion von objektrelationalen Mapping Frameworks bietet Spring noch einige weitere komfor- table Möglichkeiten, Daten abzufragen und den Prozess der Erstellung von Datenzugriffsobjekten zu vermeiden. Das dafür zugehörige Paket Spring Data JPA möchte ich Ihnen nun in Kürze vorstellen. Prinzipiell kümmert sich Spring Data JPA zunächst einmal nur um die Komfort-Funktionalitäten. Deshalb ist es auch unabhängig vom objektrelationalen Mapping und muss zusätzlich eingebunden werden. Das Hauptkonzept ist das so genannte Data Repository. Es erlaubt prinzipiell die Möglichkeit, standardisierte Abfragemechanismen für bestimmte Entitätsobjekte durchzuführen. Damit ersetzt es die Erstellung herkömmlicher DataAccess Objekte. Neben dem Data Repository gibt es auch den so genannten EntityListener. Dieser protokolliert alle Operationen, die rund um ein Entitätsobjekt passieren und in die Datenbank geschrieben werden. Um noch mal auf das Data Repository zurückzukommnen, Die Hauptimplementierung ist das so genannte CrudRepository also Create, Read, Update, Delete. Das ist eine Interface, das durch die eigene Erweiterung dafür genutzt werden kann, um Standardabfragen gekapselt zu nutzen. dafür genutzt werden kann, um Standardabfragen gekapselt zu nutzen. Dafür sind einige Dinge vordefiniert, wie z.B. ein Objekt nach seiner ID zu suchen, zu prüfen, ob ein Objekt existiert, es zu speichern, es zu löschen, alle Objekte zu zählen oder auch alle Objekte abzufragen. Diese Funktionalität ist von Hause aus durch die Erweiterung von CrudRepository gegeben. Es ist aber weiterhin möglich, auch eigene Abfragen zu definieren. Teilweise auch ohne zusätzlich Query Language zu benutzen So das anhand der Angabe des Methodennamens festgestellt wird, was Sie abfragen möchten. Um sich ein korrektes Bild davon machen zu können, möchte ich Ihnen das Ganze noch einmal in der Entwicklungsumgebung vorstellen. Um Spring Data JPA nutzen zu können, ist es notwendig, die jeweilige Bibliothek einzubinden. Für Spring Data JPA ist das dementsprechend auch Spring Data JPA. Die Versionierung ist unabhängig von der herkömmlichen Versionierung des Spring Frameworks, das aktuell in 3.2.10 zur Verfügung steht, und in dem Fall in 1.6.2 für Spring Data JPA. Die Konfiguration bleibt im Normalfall im wesentlichen gleich, was die JPA Grundkonfiguration angeht, d.h. die Definition der EntityFactory. Unabhängig davon, welche konkrete Version genutzt wird, ob nun Hibernate oder EclipseLink, kann Spring Data funktionieren. Wichtig ist, dass zusätzlich die Angabe von JPA Repository stattfindet. Dort wird ein Package angegeben, in dem sich alle Interfaces, die das Repository repräsentieren, befinden. Außerdem benötigen die Repositories die Information, wie Sie Daten speichern können über die EntityFactory, und wie Transaktionen verwaltet werden, also der jeweilige TransactionManager. Der restliche Prozess funktioniert von selbst. Wenn man nun also in dem Fall zum Startpunkt geht, sieht man, das der Applikationskontext geladen wird, in dem Fall wird der Car Manager abgerufen, und dementsprechend auch die Methode ausgeführt. Wenn man diese Anwendungen ausführt, sieht man zunächst ein mal, dass die Konfiguration wieder initial vorgenommen wird, für die Konfiguration ist die Konfigurationsklasse zuständig, diese nutzt nun das PersonRepository statt wie herkömmlich ein PersonDAO. Das PersonRepository ist nichts weiter als ein simples Interface, das CrudRepository erweitert. Durch die Angabe der j eweiligen Entitätsklasse ist auch dem Spring Framework klar, um welches Objekt es geht. Zusätzlich wird über diese Angabe gesteuert, was der ID Wert ist, bzw., was dessen Typ konkret ist. Im Falle von CarRepository ist es das Gleiche, nur dass zusätzlich Methoden definiert sind. Einerseits die Angabe FindByModel ohne weitere Query Angabe, und die Angabe FindByOwnerName. Wenn man also nun schaut, was der Car Manager konkret macht, ruft er zunächst alle Fahrzeuge mit einem bestimmten Modellnamen ab, R8, und bekommt das Ergebnis. Der Car Manager nutzt nun also dieses Repository, das über AutoWired hinzugefügt wird, und fragt R8 ab. Das CarRepository weiß nur anhand des Namens, dass das jeweilige Feld auf der Klasse existiert und braucht keine zusätzliche Query Abfrage definieren. Die Suche nach dem Besitzer gestaltet sich etwas komplexer. Aus Sicht des CarManagers ist es relativ einfach: der Aufruf für FindByOwnerName Das Repository muss diese Query aber komplexer auflösen. Dadurch wird über die Hibernate Query Language in dem Fall das Fahrzeug mit den Personen verbunden, und auf der Person wird der Parameter Name verglichen. Der Parameter Name entstammt nun der Abfrage hier, und dementsprechend kann auch die richtige Person gefunden werden, und ihre zugehörigen Fahrzeuge. Sie haben nun also gesehen, dass das Erstellen von Data Access Objekten ein Ding der Vergangenheit ist, insofern Sie auf Spring Data JPA zurückgreifen.

Spring Framework Grundkurs

Steigen sie zum Java-Champion auf und meistern Sie den Umgang mit dem Spring Framework.

2 Std. 4 min (20 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Spring Framework Spring Framework 3
Exklusiv für Abo-Kunden
Erscheinungsdatum:24.09.2014

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!