Müller / Wehr Java Persistence API 2
1. Auflage 2012
ISBN: 978-3-446-43129-4
Verlag: Hanser, Carl
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
Hibernate, EclipseLink, OpenJPA und Erweiterungen
E-Book, Deutsch, 354 Seiten
ISBN: 978-3-446-43129-4
Verlag: Hanser, Carl
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
- Hier finden Sie eine aktuelle und fundierte Einführung in JPA.
- Sie lernen die wichtigsten Implementierungen von JPA kennen: Hibernate, EclipseLink und OpenJPA
- Mit einem Ausblick auf JPA 2.1
- Im Internet: Die Beispiele des Buches zum Herunterladen
Wer eine fundierte und praxisorientierte Einführung in die Java Persistence API 2.0 sucht, ist hier richtig. Die Autoren erklären nicht nur die zentralen Konzepte von JPA, sondern gehen auch auf fortgeschrittene Themen wie die Criteria-API und Bean-Validierung ein. Mit diesem Wissen können Sie anspruchsvolle Lösungen mit JPA umsetzen.
Darüber hinaus lernen Sie mit Hibernate, EclipseLink und OpenJPA die drei wichtigsten Implementierungen von JPA kennen. Sie erfahren, welche für die Praxis interessanten Erweiterungen des Standards diese Implementierungen anbieten und wie Sie diese konkret anwenden können.
Alle Themen werden anschaulich am Beispiel real existierender Programme aus dem Bankenbereich vorgestellt. Sie können, nein, Sie sollen diese Programme herunterladen, selbst ausprobieren und als Basis für eigene Entwicklungen verwenden.
Autoren/Hrsg.
Weitere Infos & Material
1;Inhalt;6
2;Vorwort;14
3;1 Einführung;16
3.1;1.1 Motivation;16
3.1.1;1.1.1 De-facto-Standards;16
3.1.2;1.1.2 Zwei Welten treffen aufeinander;17
3.1.3;1.1.3 OR-Mapper etablieren sich;17
3.1.4;1.1.4 Aktualität und praktische Relevanz;18
3.2;1.2 JPA und JPA-Provider;18
3.2.1;1.2.1 JPA-Provider;18
3.2.2;1.2.2 Lizenzen;19
3.3;1.3 Über dieses Buch;19
3.3.1;1.3.1 Das Buch im Netz;19
3.3.2;1.3.2 Zur Sprache;20
3.3.3;1.3.3 Der Leser;20
3.3.4;1.3.4 Vollständigkeit;21
3.3.5;1.3.5 Beispielprogramme;22
3.3.6;1.3.6 Al, unser Strichmännchen;22
3.3.7;1.3.7 Die Struktur des Buches;23
4;2 Grundlegendes Mapping von Objekten;26
4.1;2.1 Primärschlüssel versus Objektidentität;26
4.1.1;2.1.1 Sequence-Generatoren;29
4.1.2;2.1.2 Table-Generatoren;31
4.2;2.2 POJO-Mapping;33
4.2.1;2.2.1 Was ist ein POJO?;34
4.2.2;2.2.2 Mapping-Optionen auf Entity-Ebene;35
4.2.3;2.2.3 Serialisierbarkeit von Entities;36
4.2.4;2.2.4 Der JPA-Zugriff auf Entity-Properties;37
4.2.5;2.2.5 Mapping-Optionen auf Property-Ebene;38
4.2.6;2.2.6 Die @Column-Annotation;43
4.3;2.3 Zusammengesetzte Schlüssel;46
4.3.1;2.3.1 Realisierung mit @IdClass;46
4.3.2;2.3.2 Realisierung mit @EmbeddedId;49
4.3.3;2.3.3 Realisierung mit @Embeddable;51
4.4;2.4 Mehrere Tabellen für ein Entity;52
5;3 Objektlebenszyklus;56
5.1;3.1 Der Zustand eines Entity;56
5.2;3.2 JPA in Java-SE-Anwendungen;57
5.2.1;3.2.1 Speichern von Entities;58
5.2.2;3.2.2 Laden von Entities;60
5.2.3;3.2.3 Aktualisieren von Entities;62
5.2.4;3.2.4 Löschen von Entities;64
5.2.5;3.2.5 Weitere Operationen auf Entities;64
5.2.6;3.2.6 Konfiguration;66
5.3;3.3 JPA in Java-EE-Anwendungen;68
5.3.1;3.3.1 Konfiguration;69
5.3.2;3.3.2 Speichern und Laden von Entities;72
5.3.3;3.3.3 Aktualisieren und Löschen von Entities;75
5.3.4;3.3.4 Der erweiterte Persistenzkontext;76
5.3.5;3.3.5 Analyse und Zusammenfassung;77
5.4;3.4 Callback-Methoden und Entity-Listener;78
5.4.1;3.4.1 Callback-Methoden;79
5.4.2;3.4.2 Entity-Listener;80
5.4.3;3.4.3 Default-Listener;81
5.4.4;3.4.4 Callbacks und Listener zur Validierung;83
5.5;3.5 Das neue Zustands-API;84
5.6;3.6 Das Packaging von Anwendungen;86
5.6.1;3.6.1 Packaging von Web-Anwendungen;86
5.6.2;3.6.2 Allgemeines Packaging;86
5.7;3.7 Mapping-Metadaten in XML;88
6;4 Objekte und Beziehungen;90
6.1;4.1 Standardbeziehungen;90
6.1.1;1:1-Beziehungen;91
6.1.1.1;Bidirektionale 1:1-Beziehungen;96
6.1.2;1:n- und n:1-Beziehungen;97
6.1.2.1;Bidirektionale 1:n-Beziehungen;99
6.1.3;n:m-Beziehungen;105
6.1.3.1;Bidirektionale n:m-Beziehungen;108
6.2;4.2 Andere Beziehungsarten;110
6.2.1;4.2.1 Assoziationsklassen;110
6.2.2;4.2.2 Rekursive Beziehungen;114
6.2.3;4.2.3 Geordnete Beziehungen;115
6.2.4;4.2.4 Beziehungen als Abbildungen;120
6.3;4.3 Wertemengen;121
6.3.1;4.3.1 Wertemengen ohne JPA;122
6.3.2;4.3.2 Einfache Datentypen;123
6.3.3;4.3.3 Einbettbare Datentypen;126
6.4;4.4 Beziehungen und Performanz;131
7;5 Vererbung;134
7.1;5.1 Eine Tabelle für eine Vererbungshierarchie;134
7.2;5.2 Eine Tabelle je Unterklasse;140
7.3;5.3 Eine Tabelle je konkreter Klasse;142
7.4;5.4 Vergleich der Vererbungsstrategien;144
7.4.1;5.4.1 Eine Tabelle für eine Vererbungshierarchie;144
7.4.2;5.4.2 Eine Tabelle je Unterklasse;145
7.4.3;5.4.3 Eine Tabelle je konkreter Klasse;145
7.5;5.5 Mapping von Oberklassen;145
7.6;5.6 Kombination von Vererbungsstrategien;147
8;6 Transaktionen;150
8.1;6.1 Probleme des Mehrbenutzerbetriebs;151
8.2;6.2 Isolation-Level;153
8.3;6.3 Transaktionen in der JPA;154
8.3.1;6.3.1 Konkurrierende Zugriffe;156
8.3.2;6.3.2 Optimistisches Locking;158
8.3.2.1;6.3.2.1 LockModeType.OPTIMISTIC;158
8.3.2.2;6.3.2.2 LockModeType.OPTIMISTIC_FORCE_INCREMENT;161
8.3.3;6.3.3 Pessimistisches Locking;161
8.3.3.1;6.3.3.1 LockModeType.PESSIMISTIC_READ;162
8.3.3.2;6.3.3.2 LockModeType.PESSIMISTIC_WRITE und LockModeType.PESSIMISTIC_FORCE_INCREMENT;162
8.3.3.3;6.3.3.3 Pessimistische Locks in der Praxis;162
8.3.4;6.3.4 Locks für Objekte erhalten;166
8.3.5;6.3.5 Caching;167
8.3.6;6.3.6 Vor- und Nachteile des Caching;172
8.4;6.4 Konversationen;173
9;7 JPQL (Java Persistence Query Language);178
9.1;7.1 JPA-Query-Interfaces;179
9.1.1;7.1.1 Named Queries;182
9.1.2;7.1.2 Parameter für Abfragen;184
9.1.3;7.1.3 Direkte SQL-Abfragen;185
9.2;7.2 Elemente der Java Persistence Query Language (JPQL);189
9.3;7.3 Die From-Klausel;189
9.3.1;7.3.1 Implizite Joins;190
9.3.2;7.3.2 Inner-Joins;190
9.3.3;7.3.3 Left-Joins;192
9.3.4;7.3.4 Fetch-Joins;193
9.3.5;7.3.5 Joins ohne definierte Mapping-Beziehungen;194
9.4;7.4 Selektionen mit Where;194
9.4.1;7.4.1 Unterabfragen (Subselects);196
9.4.2;7.4.2 Funktionen;197
9.5;7.5 Projektionen mit Select;199
9.5.1;7.5.1 Aggregationsfunktionen;200
9.5.2;7.5.2 Gruppieren von Daten mit Group By und Having;201
9.5.3;7.5.3 Ergebnisse sortieren mit Order By;202
9.5.4;7.5.4 Konstruktoren im Select-Statement;203
9.6;7.6 Update- und Delete-Statements;203
9.7;7.7 Flush-Modi und Abfragen;205
10;8 Das Criteria-API;208
10.1;8.1 Der statische Zugriff;209
10.1.1;8.1.1 Grundsätze der Generierung;209
10.1.2;8.1.2 Manuelle und automatische Generierung;210
10.2;8.2 Abfragen mit der Criteria-API;213
10.2.1;8.2.1 Join-Bedingungen in der Criteria-API;213
10.2.2;8.2.2 Einschränkung der Ergebnismenge;216
10.2.3;8.2.3 Selektion der Ausgabe;217
10.2.4;8.2.4 Unterabfragen;221
10.2.5;8.2.5 Gruppierungen mit Group By und Having und Sortierungen mit Order By;223
10.2.6;8.2.6 Benutzung von datenbankspezifischen Funktionen;224
10.2.7;8.2.7 Modifikation von bestehenden Abfragen;224
10.3;8.3 Der dynamische Zugriff;225
11;9 Bean-Validierung mit JSR 303;228
11.1;9.1 Einfache Validierungen;228
11.2;9.2 Beziehungen und eingebettete Objekte;232
11.3;9.3 Konfiguration;234
11.4;9.4 Explizite Validierung;235
11.5;9.5 Validierungsgruppen;237
11.6;9.6 Anwendungsdefinierte Validierungs-Constraints;240
11.7;9.7 Validierung mit XML;241
12;10 JPA-Konfiguration;244
12.1;10.1 Persistenzeinheiten;244
12.2;10.2 Mapping-Dateien und Annotationen;247
12.2.1;10.2.1 Das Element