Jakarta Persistence

Enterprise BeansEdit

De EJB 3.0-specificatie (zelf onderdeel van het Java EE 5-platform) bevatte een definitie van de Java Persistence API. Eindgebruikers hebben echter geen EJB container of een Java EE applicatie server nodig om applicaties te draaien die gebruik maken van deze persistentie API. Toekomstige versies van de Java Persistence API zullen worden gedefinieerd in een aparte JSR en specificatie in plaats van in de EJB JSR/specificatie.

De Java Persistence API vervangt de persistentie-oplossing van EJB 2.0 CMP (Container Managed Persistence).

Java Data Objects APIEdit

Main article: Java Data Objects

De Java Persistence API is deels ontwikkeld om de Java Data Objects API, en de EJB 2.0 Container Managed Persistence (CMP) API te verenigen. Vanaf 2009 ondersteunen de meeste producten die elk van deze API’s ondersteunen de Java Persistence API.

De Java Persistence API specificeert persistentie alleen voor relationele database management systemen. Dat wil zeggen, JPA richt zich op object-relational mapping (ORM) (merk op dat er JPA-aanbieders zijn die andere databasemodellen ondersteunen dan relationele database, maar dit valt buiten het bereik van waar JPA voor is ontworpen). Zie JPA 2 spec sectie 1 introduction voor een verduidelijking van de rol van JPA, waarin heel duidelijk staat “The technical objective of this work is to provide an object/relational mapping facility for the Java application developer using a Java domain model to manage a relational database.”

De Java Data Objects specificatie ondersteunt ORM, alsmede persistentie naar andere soorten databasemodellen, bijvoorbeeld flat file databases en NoSQL databases, inclusief document databases, graph databases, alsmede letterlijk elke andere denkbare datastore.

Service Data Object APIEdit

Main article: Service Data Objects

De ontwerpers van de Java Persistence API hadden als doel om te voorzien in relationele persistentie, met veel van de belangrijkste gebieden overgenomen van object-relationele mapping tools zoals Hibernate en TopLink. De Java Persistence API verbeterde en verving EJB 2.0, zoals blijkt uit de opname ervan in EJB 3.0. De Service Data Objects (SDO) API (JSR 235) heeft een heel andere doelstelling dan de Java Persistence API en wordt als complementair beschouwd. De SDO API is ontworpen voor dienstgerichte architecturen, meerdere gegevensformaten in plaats van alleen relationele gegevens, en meerdere programmeertalen. Het Java Community Process beheert de Java-versie van de SDO API; de C++-versie van de SDO API wordt beheerd via OASIS.

HibernateEdit

Main article: Hibernate (raamwerk)

Hibernate is een open source object-relational mapping raamwerk voor Java. Versies 3.2 en later bieden een implementatie voor de Java Persistence API. Gavin King heeft het Hibernate-project opgericht. Hij vertegenwoordigde JBoss in JSR 220, de JCP-deskundigengroep die belast was met de ontwikkeling van JPA. Dit heeft geleid tot voortdurende controverse en speculatie over de relatie tussen JPA en Hibernate. Sun Microsystems heeft verklaard dat de ideeën afkomstig waren van verschillende frameworks, waaronder Hibernate en Java Data Objects.

Spring Data JPAEdit

Een implementatie van de repository abstractie die een belangrijke bouwsteen is van Domain-Driven Design, gebaseerd op het Java applicatie framework Spring. Ondersteunt op transparante wijze alle beschikbare JPA-implementaties en ondersteunt CRUD-operaties, evenals de handige uitvoering van database-query’s.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *