20 Jahre Erfahrung FreeCall 0800 tutegos

Java Persistence API (JPA)

Nach dem objektorientierten Design kann Java die Geschäftslogik objektorientiert realisieren. Die persistente Datenhaltung von Zuständen verbleibt jedoch in der Regel in relationalen Datenbanken, sodass eine objektrelationale Abbildung der Tabellen auf Java-Objekte nötig wird. Die ›Java Persistence Specification‹ mit der zentralen ›Java Persistence API‹ (JPA) ist ein Standard für objektrelationales Mapping (ORM). Die JPA-Weiterbildung vermittelt, wie einfache Java-Objekte (POJOs) mit ihren Beziehungen auf Relationen abgebildet werden und sich die so modellierten Java-Geschäftsobjekte in Richt-Client- oder Java EE-Anwendungen nutzen lassen. Zusammen mit den standardisierten JPA-Annotationen und der Entity-Manager-API erhalten die Seminarteilnehmer wichtige Optimierungshinweise aus der Praxis, etwa über Caching oder Lazy-Loading.

Inhalte des Seminars

Grundlagen OR-Mapping mit der Java Persistence API (JPA)

  • OR-Mapper (ORM), ORM versus JDBC
  • Impedance Mismatch zwischen Relationen und Objekten
  • Java Persistence Spezifikation/Java Persistence API (JPA), JSR 220
  • Annotationen für objektrelationale Metadaten
  • Modellierung durch POJOs (plain old Java objects)
  • JPA-Provider: Hibernate, JPA im Application Server, EclipseLink
  • JPA im Kontext der Java Enterprise Edition, Java EE
  • Tools, Reverse Engineering, Hibernate-Tools

Annotationen und Entity-Manager-API

  • Entity-Klasse für Kunde
  • Persistence Unit und Datei META-INF/persistence.xml
  • EntityManagerFactory und EntityManager
  • find und getReference
  • createQuery und Query
  • Persistence Context und Zustände
  • Identität, (Autogenerierter) Schlüssel
  • persist, merge, remove, flush und refresh
  • Umgang mit Triggern
  • FlushMode
  • EntityTransaction
  • Eigene Konstruktoren nutzen, unmanaged Entities

Fortgeschrittene JPA-Annotationen

  • @Entity, @Table
  • Aufspalten in zweite Tabelle @SecondaryTable
  • Persistente Attribute/Properties, @Column
  • Datumswerte, Aufzählungen (Enum), Blob und Clob mit @Lob
  • Schlüssel, @Id, zusammengesetzte Schlüssel, @IdClass
  • Automatisch generierte Schlüssel
  • Eingebettete Komponenten, @Embedded
  • Namend Queries annotieren

Assoziationen und Vererbung

  • 1:1, 1:n und @JoinColumn, mappedBy, n:1, n:m
  • Bidirektionale Beziehungen
  • Sortierung
  • Assoziativspeicher und @MapKey
  • CascadeType, FetchType, Lazy Loading
  • Abbildungsmöglichkeiten der objektorientierten Vererbung
  • @Inheritance und @MappedSuperclass

Java Persistence Query Language (JPA-QL)

  • select, from und where
  • Polymorphe Anfragen
  • Alias definieren
  • distinct, group, having, order
  • Aggregat-Funktionen
  • Kartesisches Produkt, implizites/explizites/Inner Join
  • N+1 Update Problem vermeiden durch richtiges Join, Join-Fetch
  • Benannte Parameter
  • Bulk-Updates

Entity Listener

  • Entity Listener Schnittstelle
  • Callback-Methoden
  • @PostLoad
  • @EntityListeners

In-Container- und Out-of-Container-Persistence

  • Das DAO/Repository Pattern
  • EJB 3 Entity Beans und JPA im Java EE Container
  • Session-Fassaden
  • Persistence Context und Extended Persistence Context
  • JPA bei Web-Anwendungen
  • Kontext im Thread-Local
  • Apache MyFaces Orchestra Projekt

Transaktionen und Locking

  • Managed Umgebung versus Java EE Container
  • Schnittstellen zur Transaktionssteuerung
  • Sperrverfahren, Schatteninformationen
  • Locking
  • Optimistisches Locking, Versionsspalte mit @Version

Performance Tuning

  • First Level Cache, Second Level Cache und Caching Strategien
  • Konfiguration von EhCache am Beispiel von Hibernate
  • Logging von SQL-Anweisungen mit IronTrack und P6Spy
  • Zugriff auf natives SQL und gespeicherte Prozeduren

Neues in JPA 2.0, JPA 2.1 und JPA 2.2

  • Query Criteria API
  • Neues im EntityManager
  • Erweiterungen der JP-QL
  • Pessimistisches Locking
  • Cache API
  • Attribute-Converter
  • (Named) Entity Graph
  • Java 8-Streams, Date-Time-API
  • Weitere Änderungen
  • Proprietäre Errweiterungen der bekannten OR-Mapper

Termine / Kontakt

Jedes Seminar führt tutego als kundenangepasstes Inhouse-Seminar durch.

Alle unsere Seminare können zudem als Live-Online-Seminar besucht werden.

Wir helfen Ihnen gerne bei der Anmeldung und einen passenden Termin zu finden. Kontaktieren Sie uns per E-Mail oder unter 0800/tutegos (kostenlos aus allen Netzen).

Die Fakten

  • Empfohlene Schulungsdauer: 3 Tage, insgesamt 24 Unterrichtsstunden à 45 Minuten
  • Zielgruppe: Software-Entwickler
  • Vorkenntnisse: Der Kurs ›Java für Fortgeschrittene‹, ›Java für Umsteiger‹ oder vergleichbare Kenntnisse in der Datenbankanbindung mit Java.
  • Schulungsunterlagen: Deutschsprachige Unterlagen (Kopien der Folien mit Inhaltsverzeichnis und Index), Zertifikat
  • Seminar-Software: Java 21 ist die Standardversion, die in Verbindung mit der IntelliJ IDEA (Community-Edition) verwendet wird. Auf Wunsch auch die Eclipse IDE (Paket ›Eclipse IDE for Enterprise Java Developers‹) oder andere Entwicklungsumgebungen (NetBeans, Oracle JDeveloper) und JDK 8. Das Seminar ist grundsätzlich unabhängig vom JPA-Provider, so dass die Seminarinhalte für alle JPA-Implementierung wie Hibernate, EclipseLink, Apache OpenJPA, DataNucleus Access Platform gültig sind. Im Kurs wird standardmäßig mit der aktuellen Hibernate Version 5 gearbeitet.

Weiterführende Seminare

Java und XML, JavaServer Pages (JSP) und Servlets, Nebenläufige Programmierung mit Threads, Oracle Certified Professional Java Programmer (OCPJP), Refactoring, Design Pattern (Entwurfsmuster) in Java, Effektiv Java programmieren, Java EE Architektur und Design Patterns

Verweise

Alle Kategorien

Was Teilnehmer sagen