JPA vs Dvaletilstand
Næsten alle virksomhedsapplikationer kræves regelmæssigt for at få adgang til relationelle databaser. Men et problem med tidligere teknologier (som JDBC) var impedansmatchingen (forskellen mellem objektorienterede og relationelle teknologier). En løsning på dette problem blev introduceret gennem introduktionen af et abstrakt lag kaldet Persistence-lag, som indkapsler databaseadgang fra forretningslogikken. JPA (Java Persistence API) er en ramme dedikeret til styring af relationelle data (ved hjælp af persistenslaget) i Java-applikationer. Der er mange leverandørimplementeringer af JPA, der bruges i Java-udviklerfællesskabet. Dvaletilstand er den mest populære sådan implementering af JPA (DataNucleus, EclipseLink og OpenJPA er nogle andre). Den nyeste JPA-version (JPA 2.0) understøttes fuldt ud af Hibernate 3.5, som blev frigivet i marts 2010.
Hvad er JPA?
JPA er en ramme til styring af relationelle data for Java. Det kan bruges til applikationer, der bruger JSE (Java Platform, Standard Edition) eller JEE (Java Platform, Enterprise Edition). Dens nuværende version er JPA 2.0, som blev frigivet den 10. december, 2009. JPA erstattede EJB 2.0 og EJB 1.1-enhedsbønner (som blev kritiseret kraftigt for at være tungvægtigt af Java-udviklerfællesskabet). Selvom enhedsbønner (i EJB) leverede persistensobjekter, var mange udviklere vant til at bruge relativt lette objekter, der blev tilbudt af DAO (Data Access Objects) og andre lignende rammer i stedet. Som et resultat blev JPA introduceret, og det fangede mange af de pæne træk i de ovenfor nævnte rammer.
Persistens som beskrevet i JPA dækker API'en (defineret i javax.persistence), JPQL (Java Platform, Enterprise Edition) og metadata, der kræves til relationelle objekter. Status for en udholdenhedsenhed fortsættes typisk i en tabel. Forekomster af en enhed svarer til rækkerne i tabellen i den relationelle database. Metadata bruges til at udtrykke forholdet mellem enheder. Kommentarer eller separate XML-deskriptorfiler (implementeret med applikationen) bruges til at specificere metadata i entitetsklasser. JPQL, der ligner SQL-forespørgsler, bruges til at forespørge gemte enheder.
Hvad er Dvaletilstand?
Dvaletilstand er en ramme, der kan bruges til objekt-relationel kortlægning beregnet til Java-programmeringssprog. Mere specifikt er det et ORM-bibliotek (objekt-relationel kortlægning), der kan bruges til at kortlægge objekt-relationel model til konventionel relationel model. Enkelt set skaber det en kortlægning mellem Java-klasser og -tabeller i relationelle databaser, også mellem Java til SQL-datatyper. Dvaletilstand kan også bruges til dataforespørgsel og hentning ved at generere SQL-opkald. Derfor er programmereren lettet fra den manuelle håndtering af resultatsæt og konvertering af objekter. Dvaletilstand frigives som en gratis og open source ramme, der distribueres under GNU-licens. En implementering til JPA API findes i dvaletilstand 3.2 og senere versioner. Gavin King er grundlæggeren af Hibernate.
Hvad er forskellen mellem JPA og Dvale?
JPA er en ramme til styring af relationelle data i Java-applikationer, mens Hibernate er en specifik implementering af JPA (så ideelt set kan JPA og Hibernate ikke sammenlignes direkte). Med andre ord, Dvaletilstand er en af de mest populære rammer, der implementerer JPA. Dvaletilstand implementerer JPA gennem Hibernate Annotation og EntityManager-biblioteker, der implementeres oven på Hibernate Core-biblioteker. Både EntityManager og Annotations følger livscyklussen for Dvaletilstand. Den nyeste JPA-version (JPA 2.0) understøttes fuldt ud af Hibernate 3.5. JPA har fordelen ved at have en grænseflade, der er standardiseret, så udviklerfællesskabet vil være mere fortrolig med det end Dvaletilstand. På den anden side kan native Hibernate API'er betragtes som mere kraftfulde, fordi dens funktioner er et supersæt for JPA's.