Was ist jpa?

Java Persistence API (JPA)

Die Java Persistence API (JPA) ist eine Java-API-Spezifikation, die die Verwaltung relationaler Daten in Java-Anwendungen standardisiert. Sie definiert, wie Java-Objekte (Entitäten) in Datenbanktabellen abgebildet (gemappt) und persistent gespeichert werden können. JPA ist keine Implementierung, sondern eine Spezifikation, die von verschiedenen Anbietern implementiert werden kann.

Wichtige Konzepte:

  • <a href="https://de.wikiwhat.page/kavramlar/Entitäten">Entitäten</a>: Java-Klassen, die Datenbanktabellen repräsentieren. Sie werden mit JPA-Annotationen versehen, um die Zuordnung zur Datenbank zu definieren.

  • <a href="https://de.wikiwhat.page/kavramlar/EntityManager">EntityManager</a>: Die zentrale Schnittstelle in JPA. Sie wird verwendet, um Entitäten zu erstellen, zu lesen, zu aktualisieren und zu löschen (CRUD-Operationen).

  • <a href="https://de.wikiwhat.page/kavramlar/PersistenceContext">PersistenceContext</a>: Verwaltet die Lebenszyklen von Entitätsinstanzen. Es ist ein Satz von Entitäten, die vom EntityManager verwaltet werden.

  • <a href="https://de.wikiwhat.page/kavramlar/JPQL">JPQL</a>: Java Persistence Query Language. Eine objektorientierte Abfragesprache, die es Entwicklern ermöglicht, Daten aus der Datenbank abzurufen, ohne SQL verwenden zu müssen. Sie arbeitet mit Entitäten und ihren Eigenschaften.

  • <a href="https://de.wikiwhat.page/kavramlar/ORM%20(Object-Relational%20Mapping)">ORM (Object-Relational Mapping)</a>: JPA ist ein Framework für ORM. Es ermöglicht die Abbildung von Objekten auf relationale Daten, wodurch der Entwickler sich weniger um die Datenbankinteraktionen kümmern muss.

JPA Implementierungen:

Bekannte JPA-Implementierungen sind:

  • Hibernate
  • EclipseLink
  • OpenJPA
  • DataNucleus

Vorteile von JPA:

  • Standardisierung: Definiert einen Standardansatz für die Persistenz, wodurch die Portabilität zwischen verschiedenen JPA-Implementierungen gefördert wird.
  • Abstraktion: Verbirgt die Komplexität der Datenbankinteraktion durch die Verwendung von ORM.
  • Objektorientierung: Ermöglicht die Arbeit mit Objekten anstelle von direkten SQL-Abfragen, was die Code-Wartbarkeit verbessert.
  • Typsicherheit: JPQL ermöglicht typsichere Abfragen, was das Risiko von Fehlern reduziert.

JPA in Java EE / Jakarta EE:

JPA ist ein integraler Bestandteil der Java EE (jetzt Jakarta EE) Spezifikation. In Jakarta EE Umgebungen wird der EntityManager in der Regel durch Dependency Injection (DI) bereitgestellt.