Inhoudsopgave cursusboek JPA 2.2 / Hibernate
1 Object-Relational Mapping
1.1 Inleiding
1.2 Enterprise JavaBeans 2.0
1.3 Hibernate – TopLink
1.4 Java Persistence API
2 Installatie & configuratie
2.1 Installatie van JPA met Hibernate
2.2 Configuratie van JPA
3 Mijn eerste entity-klasse
3.1 Daar komt hij weer ...
3.2 De entity-klasse
3.3 De Persistence Unit
3.4 Het hoofdprogramma
4 Persistente objecten
4.1 Entity-klassen
4.2 Primary keys
4.2.1 Enkelvoudige primary key
4.2.2 Samengestelde primary key
4.2.3 Autogenerated primary keys
4.3 De identiteit van objecten
4.3.1 Object identity
4.3.2 Object equality
4.3.3 Database identity
4.4 Field access versus property access
5 Werken met entity-objecten
5.1 Inleiding
5.2 De Entity Manager
5.3 De Persistence Context
5.4 Transacties
5.4.1 ACID transacties
5.4.2 JDBC transacties
5.4.3 JPA-transacties
5.4.4 Transacties en de persistence context
5.4.5 Lokale transacties versus managed transacties
5.5 Mogelijkheden van de Entity Manager
5.5.1 Objecten bewaren
5.5.2 Objecten opzoeken
5.5.3 Objecten aanpassen
5.5.4 Objecten verwijderen
5.5.5 Objecten verversen
5.5.6 Objecten wegschrijven
5.5.7 Objecten verwijderen uit de persistence context
5.5.8 Overige methoden
5.6 Transacties en concurrency
5.6.1 Optimistic locking met JPA
5.6.2 Pessimistic locking
5.6.3 Caching
5.6.4 Conversaties & business-transacties
6 Het domeinmodel
6.1 Inleiding
6.2 Configuratie van tabellen en kolommen
6.2.1 Tabelnamen
6.2.2 Kolommen
6.2.3 Secundaire tabellen
6.3 Mapping van datatypes
6.3.1 Primary keys
6.3.2 Enkelvoudige datatypes
6.3.2.1 Primitieve datatypes
6.3.2.2 Datums en tijden
6.3.2.3 Het opsommingstype
6.3.2.4 Grote objecten
6.3.2.5 Speciale datatypes
6.3.2.6 Eigen conversies
6.3.2.7 Velden uitsluiten en virtuele velden
6.3.3 Value types: ingesloten objecten
6.3.4 Element Collections
6.4 Relaties tussen entiteiten
6.4.1 Value type versus entity type
6.4.2 Soorten relaties
6.4.3 One to one
6.4.3.1 Het cascadetype
6.4.3.2 Het fetch-type
6.4.3.3 Bidirectionele mapping
6.4.3.4 Orphan Removal
6.4.4 One to many en many to one
6.4.4.1 Fetch type in een to-many-relatie (1+n-probleem)
6.4.4.2 Geordende en gesorteerde verzamelingen
6.4.4.3 Verzamelingen als Map
6.4.5 Many to many
6.4.6 Relatieobjecten
6.5 Overerving
6.5.1 Strategieën voor overerving
6.5.1.1 Tabel voor de gehele klassenhiërarchie (SINGLE_TABLE)
6.5.1.2 Tabel per subklasse (JOINED)
6.5.1.3 Tabel per concrete klasse (TABLE_PER_CLASS)
6.5.2 Overerving van velden of properties
6.5.2.1 Overerving van gewone superklassen
6.5.2.2 Attribute overriding
7 Zoekopdrachten
7.1 Inleiding
7.2 Query API en JPQL
7.2.1 De Query API
7.2.2 Named queries
7.2.3 JPQL
7.2.3.1 Onderdelen van een zoekopdrachten
7.2.3.2 Selectie van de entiteiten (FROM-clausule)
7.2.3.3 Projectie van de resultaten (SELECT-clausule)
7.2.3.4 De restrictie van de zoekoperatie (WHERE-clausule)
7.2.3.5 Voorwaardelijke uitdrukkingen
7.2.3.6 Binnen relaties zoeken: joins
7.2.3.7 Groepering van resultaten
7.2.3.8 Subqueries
7.2.3.9 Bulk update en delete
7.3 Native queries
7.4 Stored Procedures
7.5 Criteria API
8 Callbacks en listeners
9 Validatie
9.1 Inleiding
9.2 Configuratie
9.3 Validatieregels
9.4 Validation groups