Java Persistence API 2 (eBook)
354 Seiten
Carl Hanser Fachbuchverlag
978-3-446-43129-4 (ISBN)
- 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.
Prof. Dr. Bernd Müller unterrichtet Software-Technik an der Fakultät Informatik der Hochschule Braunschweig/Wolfenbüttel. Er ist Autor mehrerer Fachbücher und Zeitschriftenartikel, gefragter Sprecher auf Konferenzen sowie Mitglied der JCP-Expertengruppe für JPA 2.1.Harald Wehr ist IT-Consultant bei der MAN Gruppe in Salzgitter. Neben der Java-Entwicklung ist sein derzeitiger Aufgabenschwerpunkt die SAP HCM System-Betreuung und -Entwicklung für die verschiedenen Unternehmensbereiche.
Inhalt 6
Vorwort 14
1 Einführung 16
1.1 Motivation 16
1.1.1 De-facto-Standards 16
1.1.2 Zwei Welten treffen aufeinander 17
1.1.3 OR-Mapper etablieren sich 17
1.1.4 Aktualität und praktische Relevanz 18
1.2 JPA und JPA-Provider 18
1.2.1 JPA-Provider 18
1.2.2 Lizenzen 19
1.3 Über dieses Buch 19
1.3.1 Das Buch im Netz 19
1.3.2 Zur Sprache 20
1.3.3 Der Leser 20
1.3.4 Vollständigkeit 21
1.3.5 Beispielprogramme 22
1.3.6 Al, unser Strichmännchen 22
1.3.7 Die Struktur des Buches 23
2 Grundlegendes Mapping von Objekten 26
2.1 Primärschlüssel versus Objektidentität 26
2.1.1 Sequence-Generatoren 29
2.1.2 Table-Generatoren 31
2.2 POJO-Mapping 33
2.2.1 Was ist ein POJO? 34
2.2.2 Mapping-Optionen auf Entity-Ebene 35
2.2.3 Serialisierbarkeit von Entities 36
2.2.4 Der JPA-Zugriff auf Entity-Properties 37
2.2.5 Mapping-Optionen auf Property-Ebene 38
2.2.6 Die @Column-Annotation 43
2.3 Zusammengesetzte Schlüssel 46
2.3.1 Realisierung mit @IdClass 46
2.3.2 Realisierung mit @EmbeddedId 49
2.3.3 Realisierung mit @Embeddable 51
2.4 Mehrere Tabellen für ein Entity 52
3 Objektlebenszyklus 56
3.1 Der Zustand eines Entity 56
3.2 JPA in Java-SE-Anwendungen 57
3.2.1 Speichern von Entities 58
3.2.2 Laden von Entities 60
3.2.3 Aktualisieren von Entities 62
3.2.4 Löschen von Entities 64
3.2.5 Weitere Operationen auf Entities 64
3.2.6 Konfiguration 66
3.3 JPA in Java-EE-Anwendungen 68
3.3.1 Konfiguration 69
3.3.2 Speichern und Laden von Entities 72
3.3.3 Aktualisieren und Löschen von Entities 75
3.3.4 Der erweiterte Persistenzkontext 76
3.3.5 Analyse und Zusammenfassung 77
3.4 Callback-Methoden und Entity-Listener 78
3.4.1 Callback-Methoden 79
3.4.2 Entity-Listener 80
3.4.3 Default-Listener 81
3.4.4 Callbacks und Listener zur Validierung 83
3.5 Das neue Zustands-API 84
3.6 Das Packaging von Anwendungen 86
3.6.1 Packaging von Web-Anwendungen 86
3.6.2 Allgemeines Packaging 86
3.7 Mapping-Metadaten in XML 88
4 Objekte und Beziehungen 90
4.1 Standardbeziehungen 90
1:1-Beziehungen 91
Bidirektionale 1:1-Beziehungen 96
1:n- und n:1-Beziehungen 97
Bidirektionale 1:n-Beziehungen 99
n:m-Beziehungen 105
Bidirektionale n:m-Beziehungen 108
4.2 Andere Beziehungsarten 110
4.2.1 Assoziationsklassen 110
4.2.2 Rekursive Beziehungen 114
4.2.3 Geordnete Beziehungen 115
4.2.4 Beziehungen als Abbildungen 120
4.3 Wertemengen 121
4.3.1 Wertemengen ohne JPA 122
4.3.2 Einfache Datentypen 123
4.3.3 Einbettbare Datentypen 126
4.4 Beziehungen und Performanz 131
5 Vererbung 134
5.1 Eine Tabelle für eine Vererbungshierarchie 134
5.2 Eine Tabelle je Unterklasse 140
5.3 Eine Tabelle je konkreter Klasse 142
5.4 Vergleich der Vererbungsstrategien 144
5.4.1 Eine Tabelle für eine Vererbungshierarchie 144
5.4.2 Eine Tabelle je Unterklasse 145
5.4.3 Eine Tabelle je konkreter Klasse 145
5.5 Mapping von Oberklassen 145
5.6 Kombination von Vererbungsstrategien 147
6 Transaktionen 150
6.1 Probleme des Mehrbenutzerbetriebs 151
6.2 Isolation-Level 153
6.3 Transaktionen in der JPA 154
6.3.1 Konkurrierende Zugriffe 156
6.3.2 Optimistisches Locking 158
6.3.2.1 LockModeType.OPTIMISTIC 158
6.3.2.2 LockModeType.OPTIMISTIC_FORCE_INCREMENT 161
6.3.3 Pessimistisches Locking 161
6.3.3.1 LockModeType.PESSIMISTIC_READ 162
6.3.3.2 LockModeType.PESSIMISTIC_WRITE und LockModeType.PESSIMISTIC_FORCE_INCREMENT 162
6.3.3.3 Pessimistische Locks in der Praxis 162
6.3.4 Locks für Objekte erhalten 166
6.3.5 Caching 167
6.3.6 Vor- und Nachteile des Caching 172
6.4 Konversationen 173
7 JPQL (Java Persistence Query Language) 178
7.1 JPA-Query-Interfaces 179
7.1.1 Named Queries 182
7.1.2 Parameter für Abfragen 184
7.1.3 Direkte SQL-Abfragen 185
7.2 Elemente der Java Persistence Query Language (JPQL) 189
7.3 Die From-Klausel 189
7.3.1 Implizite Joins 190
7.3.2 Inner-Joins 190
7.3.3 Left-Joins 192
7.3.4 Fetch-Joins 193
7.3.5 Joins ohne definierte Mapping-Beziehungen 194
7.4 Selektionen mit Where 194
7.4.1 Unterabfragen (Subselects) 196
7.4.2 Funktionen 197
7.5 Projektionen mit Select 199
7.5.1 Aggregationsfunktionen 200
7.5.2 Gruppieren von Daten mit Group By und Having 201
7.5.3 Ergebnisse sortieren mit Order By 202
7.5.4 Konstruktoren im Select-Statement 203
7.6 Update- und Delete-Statements 203
7.7 Flush-Modi und Abfragen 205
8 Das Criteria-API 208
8.1 Der statische Zugriff 209
8.1.1 Grundsätze der Generierung 209
8.1.2 Manuelle und automatische Generierung 210
8.2 Abfragen mit der Criteria-API 213
8.2.1 Join-Bedingungen in der Criteria-API 213
8.2.2 Einschränkung der Ergebnismenge 216
8.2.3 Selektion der Ausgabe 217
8.2.4 Unterabfragen 221
8.2.5 Gruppierungen mit Group By und Having und Sortierungen mit Order By 223
8.2.6 Benutzung von datenbankspezifischen Funktionen 224
8.2.7 Modifikation von bestehenden Abfragen 224
8.3 Der dynamische Zugriff 225
9 Bean-Validierung mit JSR 303 228
9.1 Einfache Validierungen 228
9.2 Beziehungen und eingebettete Objekte 232
9.3 Konfiguration 234
9.4 Explizite Validierung 235
9.5 Validierungsgruppen 237
9.6 Anwendungsdefinierte Validierungs-Constraints 240
9.7 Validierung mit XML 241
10 JPA-Konfiguration 244
10.1 Persistenzeinheiten 244
10.2 Mapping-Dateien und Annotationen 247
10.2.1 Das Element < entity-mappings>
10.2.2 Das Element < persistence-unit-metadata>
10.2.3 Das Element < access>
10.2.4 Das Element < sequence-generator>
10.2.5 Das Element < table-generator>
10.2.6 Das Element < named-query>
10.2.7 Das Element < named-native-query>
10.2.8 Das Element < sql-result-set-mapping>
10.2.9 Das Element < entity>
10.2.10 Das Element < table>
10.2.11 Das Element < unique-constraint>
10.2.12 Das Element < secondary-table>
10.2.13 Das Element < primary-key-join-column>
10.2.14 Das Element < discriminator-column>
10.2.15 Das Element < attribute-override>
10.2.16 Das Element < association-override>
10.2.17 Das Element < attributes>
10.2.18 Das Element < column>
10.2.19 Das Element < element-collection>
10.2.20 Das Element < collection-table>
10.2.21 Das Element < id>
10.2.22 Das Element < embedded-id>
10.2.23 Das Element < basic>
10.2.24 Das Element < version>
10.2.25 Das Element < join-column>
10.2.26 Das Element < cascade>
10.2.27 Das Element < one-to-one>
10.2.28 Die Elemente < many-to-one>
10.2.29 Das Element < many-to-many>
10.2.30 Das Element < order-by>
10.2.31 Das Element < embedded>
10.2.32 Das Element < join-table>
10.2.33 Das Element < mapped-superclass>
10.2.34 Das Element < embeddable>
10.2.35 Das Element < entity-listener>
10.2.36 Das Element < id-class>
10.2.37 Das Element < inheritance>
10.2.38 Das Element < order-column>
10.2.39 Das Element < map-key>
Die weiteren < map-key-...>
11 Hibernate-Erweiterungen 276
11.1 Caching 277
11.1.1 Objekt-Cache 280
11.1.2 Query-Cache 282
11.2 Instrumentation 283
11.3 Hibernate-Search 285
11.3.1 Lucene 285
11.3.2 Konfiguration in Hibernate 286
11.3.3 Hibernate-Bridges 290
11.3.4 Abfragen mit der Lucene-Syntax 293
11.4 Envers 294
11.4.1 Einfache Auditierung 294
11.4.2 Auditieren von Beziehungen 297
11.4.3 Typische Anwendungsfälle 298
11.4.4 Die Auditierungsstrategie 300
12 EclipseLink-Erweiterungen 302
12.1 Caching 302
12.1.1 Objekt-Cache 304
12.1.2 Query-Cache 307
12.2 Weaving 308
12.3 Mandantenfähigkeit 310
13 OpenJPA-Erweiterungen 314
13.1 Caching 314
13.1.1 Object-Cache 315
13.1.2 Query-Cache 317
13.2 Enhancement 319
13.3 Slice 321
13.3.1 Konfiguration 321
13.3.2 Verteilungsstrategien 322
14 Ausblick auf JPA 2.1 326
Literaturverzeichnis 330
URL-Verzeichnis 332
Stichwortverzeichnis 334
| Erscheint lt. Verlag | 3.5.2012 |
|---|---|
| Verlagsort | München |
| Sprache | deutsch |
| Themenwelt | Informatik ► Programmiersprachen / -werkzeuge ► Java |
| Schlagworte | Java • JPA • OR-Mapper • OR-Mapping • Persistenz |
| ISBN-10 | 3-446-43129-2 / 3446431292 |
| ISBN-13 | 978-3-446-43129-4 / 9783446431294 |
| Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
| Haben Sie eine Frage zum Produkt? |
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich