Jakarta Persistence

Enterprise BeansEdit

Die EJB 3.0 Spezifikation (selbst Teil der Java EE 5 Plattform) enthielt eine Definition der Java Persistence API. Endbenutzer benötigen jedoch weder einen EJB-Container noch einen Java EE-Anwendungsserver, um Anwendungen auszuführen, die diese Persistenz-API verwenden. Zukünftige Versionen der Java Persistence API werden in einem separaten JSR und einer Spezifikation statt im EJB JSR/Spezifikation definiert.

Die Java Persistence API ersetzt die Persistenzlösung von EJB 2.0 CMP (Container Managed Persistence).

Java Data Objects APIEdit

Hauptartikel: Java Data Objects

Die Java Persistence API wurde zum Teil entwickelt, um die Java Data Objects API und die EJB 2.0 Container Managed Persistence (CMP) API zu vereinheitlichen. Seit 2009 unterstützen die meisten Produkte, die jedes dieser APIs unterstützen, das Java Persistence API.

Das Java Persistence API spezifiziert Persistenz nur für relationale Datenbankmanagementsysteme. Das heißt, JPA konzentriert sich auf objektrelationales Mapping (ORM) (beachten Sie, dass es JPA-Anbieter gibt, die andere Datenbankmodelle als relationale Datenbanken unterstützen, aber das liegt außerhalb des Bereichs, für den JPA entwickelt wurde). Die Rolle von JPA wird in Abschnitt 1 der JPA 2-Spezifikation erläutert, in dem es ganz klar heißt: „Das technische Ziel dieser Arbeit ist es, dem Java-Anwendungsentwickler, der ein Java-Domänenmodell verwendet, um eine relationale Datenbank zu verwalten, eine Objekt/Relational-Mapping-Funktion zur Verfügung zu stellen.“

Die Java Data Objects-Spezifikation unterstützt ORM sowie Persistenz zu anderen Arten von Datenbankmodellen, zum Beispiel Flat-File-Datenbanken und NoSQL-Datenbanken, einschließlich Dokumentendatenbanken, Graphdatenbanken sowie buchstäblich jedem anderen denkbaren Datenspeicher.

Service Data Object APIEdit

Hauptartikel: Service Data Objects

Die Entwickler der Java Persistence API zielten darauf ab, relationale Persistenz zu ermöglichen, wobei viele der Schlüsselbereiche von objektrelationalen Mapping-Tools wie Hibernate und TopLink übernommen wurden. Die Java Persistence API verbesserte und ersetzte EJB 2.0, was durch ihre Aufnahme in EJB 3.0 belegt wird. Die Service Data Objects (SDO) API (JSR 235) hat eine ganz andere Zielsetzung als die Java Persistence API und wird als Ergänzung betrachtet. Die SDO-API ist für dienstorientierte Architekturen, mehrere Datenformate (nicht nur relationale Daten) und mehrere Programmiersprachen konzipiert. Der Java Community Process verwaltet die Java-Version der SDO API; die C++-Version der SDO API wird über OASIS verwaltet.

HibernateEdit

Hauptartikel: Hibernate (Framework)

Hibernate ist ein quelloffenes objektrelationales Mapping-Framework für Java. Ab der Version 3.2 steht eine Implementierung für das Java Persistence API zur Verfügung. Gavin King gründete das Hibernate-Projekt. Er vertrat JBoss in JSR 220, der JCP-Expertengruppe, die mit der Entwicklung von JPA beauftragt war. Dies führte zu anhaltenden Kontroversen und Spekulationen über die Beziehung zwischen JPA und Hibernate. Sun Microsystems hat erklärt, dass die Ideen von mehreren Frameworks stammen, darunter Hibernate und Java Data Objects.

Spring Data JPAEdit

Eine Implementierung der Repository-Abstraktion, die ein wichtiger Baustein des Domain-Driven Design ist und auf dem Java Application Framework Spring basiert. Sie unterstützt transparent alle verfügbaren JPA-Implementierungen und ermöglicht sowohl CRUD-Operationen als auch die komfortable Ausführung von Datenbankabfragen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.