JPA 2.0

De Java Persistence API (JPA) is de Java standaard voor data access. JPA 2.0 is onderdeel van de Java EE 6 enterprise standaard, maar JPA kan ook gebruikt worden in standalone applicaties (Java SE). JPA maakt het implementeren van data access functionaliteit een stuk simpeler vergeleken met de JDBC standaard.
In de Java wereld heb je keuze uit verschillende Object Relational Mappers zoals Hibernate, TopLink, EclipseLink of OpenJPA. Een Object Relational Mapper (ORM) maakt het mogelijk om op een simpele, efficiënte manier objecten op te slaan in een relationele database, of om objecten uit een relationele database te halen. Al deze verschillende ORM′s hebben hun eigen API, zodat jouw code afhankelijk is van een specifieke ORM. JPA 2.0 is een krachtige standaard die jouw code onafhankelijk maakt van een bepaalde ORM. Een veelgebruikte ORM is Hibernate. Door JPA samen met Hibernate te gebruiken is uw applicatie onafhankelijk van Hibernate. Hibernate raad zelfs aan om de JPA 2.0 standaard te gebruiken i.p.v. de Hibernate API.
Deze cursus behandelt alle belangrijke aspecten van JPA. Met behulp van hands-on oefeningen leren de cursisten al deze aspecten zelf te implementeren. Naast ORM mappingen en queries staan we ook uitvoerig stil bij het optimaliseren van data access code, wat belangrijk is voor de performance van de applicatie.

Duur
3 dagen

Onderwerpen
De JPA 2.0 cursus behandelt de volgende onderwerpen:


Module 1: JPA introductie
Module 2: Object mapping
Module 3: Object persistency
Module 4: Association mapping
Module 5: Collection mapping
Module 6: Inheritance mapping
Module 7: Complexe mapping
Module 8: JPQL queries
Module 9: Criteria
Module 10: Native queries
Module 11: Constraints en validatie
Module 12: Data access optimalisatie
Module 13: Transactie management


Gedetailleerde onderwerpenlijst
Hieronder vind u een gedetailleerd overzicht met onderwerpen die in de cursus Java Persistence API (JPA 2.0) behandeld zullen worden:

Module 1: JPA introductie

  • Object relational mismatch
  • Data access opties in Java
  • Object Relational mapper
  • JPA
  • Persistence Unit
  • Hello World JPA voorbeeld

Module 2: Object mapping

  • Mapping van entity classes naar tabbelen
  • Mapping van properties naar colommen
  • Mapping Identity en Identity generatie
  • Mapping Data types

Module 3: Object persistency

  • Entity lifecycle
  • Persistence context
  • Het EntityManager object
  • Saven, updaten en deleten van objecten
  • Caching en flushing

Module 4: Associatie mapping

  • One-to-one mapping uni-directioneel met join column
  • One-to-one mapping uni-directioneel met shared keys
  • One-to-one mapping bi- directioneel
  • Many-to-one mapping uni- directioneel
  • Optionele associaties
  • One-to-many mapping uni- directioneel
  • Many-to-one/one-to-many bi- directioneel
  • Many-to-many mapping
  • Cascading

Module 5: Collectie mapping

  • Mapping van een Bag
  • Mapping van een Set
  • Mapping van een List
  • Mapping van een Map
  • Order by

Module 6: Inheritance mapping

  • Single table per hierarchy
  • Joined tables
  • Table per concrete class

Module 7: Complexe mapping

  • Secondary tables
  • Embedded classes
  • Composite keys
  • Immutable entities

Module 8: JPQL

  • Het Query object
  • Named queries
  • De FROM clause
  • De WHERE clause
  • Joins
  • De SELECT clause

Module 9: Criteria

  • Query by criteria
  • Restrictions
  • Association
  • Projection

Module 10: Native queries

  • Native SQL queries
  • Named queries

Module 11: Constraints and validation

  • Constraints
  • Automatic validation
  • Programmatic validation
  • Recursive validation

Module 12: Data access optimisatie

  • Lazy en eager fetching
  • Lazy loading van properties
  • N+1 probleem
  • Batch fetching
  • Subselect fetching
  • Join fetching

Module 13: Transactie management

  • Gebruik van DAO′s en session management
  • Transacties
  • Tread local session pattern
  • Open session in view pattern