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)
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 ;248
12.2.2;10.2.2 Das Element ;249
12.2.3;10.2.3 Das Element ;250
12.2.4;10.2.4 Das Element ;250
12.2.5;10.2.5 Das Element ;251
12.2.6;10.2.6 Das Element ;252
12.2.7;10.2.7 Das Element ;252
12.2.8;10.2.8 Das Element ;253
12.2.9;10.2.9 Das Element ;253
12.2.10;10.2.10 Das Element ;255
12.2.11;10.2.11 Das Element ;256
12.2.12;10.2.12 Das Element ;256
12.2.13;10.2.13 Das Element ;257
12.2.14;10.2.14 Das Element ;257
12.2.15;10.2.15 Das Element ;258
12.2.16;10.2.16 Das Element ;258
12.2.17;10.2.17 Das Element ;259
12.2.18;10.2.18 Das Element ;260
12.2.19;10.2.19 Das Element ;260
12.2.20;10.2.20 Das Element ;261
12.2.21;10.2.21 Das Element ;262
12.2.22;10.2.22 Das Element ;263
12.2.23;10.2.23 Das Element ;263
12.2.24;10.2.24 Das Element ;264
12.2.25;10.2.25 Das Element ;265
12.2.26;10.2.26 Das Element ;265
12.2.27;10.2.27 Das Element ;266
12.2.28;10.2.28 Die Elemente und ;267
12.2.29;10.2.29 Das Element ;268
12.2.30;10.2.30 Das Element ;269
12.2.31;10.2.31 Das Element ;270
12.2.32;10.2.32 Das Element ;270
12.2.33;10.2.33 Das Element ;271
12.2.34;10.2.34 Das Element ;271
12.2.35;10.2.35 Das Element ;272
12.2.36;10.2.36 Das Element ;272
12.2.37;10.2.37 Das Element ;273
12.2.38;10.2.38 Das Element ;273
12.2.39;10.2.39 Das Element ;273
12.2.40;Die weiteren -Elemente;274
13;11 Hibernate-Erweiterungen;276
13.1;11.1 Caching;277
13.1.1;11.1.1 Objekt-Cache;280
13.1.2;11.1.2 Query-Cache;282
13.2;11.2 Instrumentation;283
13.3;11.3 Hibernate-Search;285
13.3.1;11.3.1 Lucene;285
13.3.2;11.3.2 Konfiguration in Hibernate;286
13.3.3;11.3.3 Hibernate-Bridges;290
13.3.4;11.3.4 Abfragen mit der Lucene-Syntax;293
13.4;11.4 Envers;294
13.4.1;11.4.1 Einfache Auditierung;294
13.4.2;11.4.2 Auditieren von Beziehungen;297
13.4.3;11.4.3 Typische Anwendungsfälle;298
13.4.4;11.4.4 Die Auditierungsstrategie;300
14;12 EclipseLink-Erweiterungen;302
14.1;12.1 Caching;302
14.1.1;12.1.1 Objekt-Cache;304
14.1.2;12.1.2 Query-Cache;307
14.2;12.2 Weaving;308
14.3;12.3 Mandantenfähigkeit;310
15;13 OpenJPA-Erweiterungen;314
15.1;13.1 Caching;314
15.1.1;13.1.1 Object-Cache;315
15.1.2;13.1.2 Query-Cache;317
15.2;13.2 Enhancement;319
15.3;13.3 Slice;321
15.3.1;13.3.1 Konfiguration;321
15.3.2;13.3.2 Verteilungsstrategien;322
16;14 Ausblick auf JPA 2.1;326
17;Literaturverzeichnis;330
18;URL-Verzeichnis;332
19;Stichwortverzeichnis;334