Jakarta Persistence

Enterprise BeansEdit

Specifikationen för EJB 3.0 (som i sig är en del av Java EE 5-plattformen) innehöll en definition av Java Persistence API. Slutanvändare behöver dock inte en EJB-behållare eller en Java EE-applikationsserver för att kunna köra program som använder detta persistens-API. Framtida versioner av Java Persistence API kommer att definieras i en separat JSR och specifikation snarare än i EJB JSR/specifikation.

Java Persistence API ersätter persistenslösningen i EJB 2.0 CMP (Container Managed Persistence).

Java Data Objects APIEdit

Huvudartikel: Java Data Objects

Java Persistence API utvecklades delvis för att förenhetliga Java Data Objects API och EJB 2.0 Container Managed Persistence (CMP) API. Från och med 2009 stöder de flesta produkter som stöder vart och ett av dessa API:er Java Persistence API.

Java Persistence API specificerar persistens endast för relationella databashanteringssystem. JPA fokuserar alltså på objektrelationell mappning (ORM) (observera att det finns JPA-leverantörer som stöder andra databasmodeller än relationsdatabaser, men detta ligger utanför det område som JPA utformades för). Se JPA 2 spec avsnitt 1 introduktion för ett förtydligande av JPA:s roll, där det mycket tydligt står: ”Det tekniska målet med detta arbete är att tillhandahålla en funktion för objekt/relationell mappning för utvecklare av Java-applikationer som använder en Java-domänmodell för att hantera en relationsdatabas.”

Specifikationen för Java Data Objects stöder ORM samt persistens till andra typer av databasmodeller, t.ex. databaser med platta filer och NoSQL-databaser, inklusive dokumentdatabaser, grafdatabaser samt bokstavligen alla andra tänkbara datalagringsutrymmen.

Service Data Object APIEdit

Huvudartikel: Service Data Objects

Designerna av Java Persistence API syftade till att tillhandahålla relationell persistens, med många av de viktigaste områdena hämtade från objektrelationella mappningsverktyg som Hibernate och TopLink. Java Persistence API förbättrade och ersatte EJB 2.0, vilket framgår av att det ingår i EJB 3.0. Service Data Objects (SDO) API (JSR 235) har ett helt annat syfte än Java Persistence API och anses komplettera detta. SDO API är utformat för tjänsteorienterade arkitekturer, flera dataformat i stället för enbart relationsdata och flera programmeringsspråk. Java Community Process förvaltar Java-versionen av SDO API; C++-versionen av SDO API förvaltas via OASIS.

HibernateEdit

Huvudartikel: Hibernate (ramverk)

Hibernate är ett ramverk för objektrelationell mappning för Java med öppen källkod. Versionerna 3.2 och senare tillhandahåller ett genomförande för Java Persistence API. Gavin King grundade Hibernate-projektet. Han representerade JBoss i JSR 220, JCP:s expertgrupp med uppgift att utveckla JPA. Detta ledde till pågående kontroverser och spekulationer kring förhållandet mellan JPA och Hibernate. Sun Microsystems har uppgett att idéerna kom från flera ramverk, bland annat Hibernate och Java Data Objects.

Spring Data JPAEdit

En implementering av den abstraktion av förvaringsutrymme som är en viktig byggsten i Domain-Driven Design och som bygger på Java-applikationsramverket Spring. Stödjer öppet alla tillgängliga JPA-implementationer och stöder CRUD-operationer samt bekväm exekvering av databasförfrågningar.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *