Müller / Wehr | Java Persistence API 2 | E-Book | sack.de
E-Book

E-Book, Deutsch, 354 Seiten

Müller / Wehr Java Persistence API 2

Hibernate, EclipseLink, OpenJPA und Erweiterungen
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)



JAVA PERSISTANCE API 2 //- 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 HerunterladenWer 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.
Müller / Wehr Java Persistence API 2 jetzt bestellen!

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


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.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.