Forskel mellem JPA og Hibernate

Anonim

JPA vs Hibernate

Næsten alle virksomhedsapplikationer er nødvendige for at få adgang til relationelle databaser regelmæssigt. Men et problem med tidligere teknologier (f.eks. JDBC) var impedans mismatch (forskel mellem objektorienterede og relationelle teknologier). En løsning på dette problem blev introduceret ved indførelsen af ​​et abstrakt lag kaldet Persistence-lag, som indkapsler databasetilgang fra forretnings logikken. 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ør implementeringer af JPA, der anvendes i Java udvikler samfund. Hibernate 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 udgivet i marts 2010.

Hvad er JPA?

JPA er en ramme for styring af relationsdata for Java. Den kan bruges med applikationer der bruger JSE (Java Platform, Standard Edition) eller JEE (Java Platform, Enterprise Edition). Den nuværende version er JPA 2. 0, som blev udgivet den 10. december 2009. JPA erstattede EJB 2. 0 og EJB 1. 1 enhed bønner (som blev stærkt kritiseret for at være tungvægt af Java udvikler samfund). Selvom enhedsbønner (i EJB) tilvejebragte persistensobjekter, blev mange udviklere brugt til at udnytte relativt lette genstande, der tilbydes af DAO (Data Access Objects) og andre lignende rammer i stedet. Som et resultat blev JPA indført, og det indfangede mange af de pæne træk ved de ovennævnte rammer.

Persistens som beskrevet i JPA dækker API'en (defineret i javax persistens), JPQL (Java Platform, Enterprise Edition) og metadata, der kræves for relationelle objekter. Status for en persistens enhed er typisk vedvarende i en tabel. Instanser af en enhed svarer til rækker i tabellen i relationel databasen. Metadata bruges til at udtrykke forholdet mellem enheder. Annoteringer eller separate XML-beskrivelsesfiler (implementeret med applikationen) bruges til at specificere metadata i enhedsklasser. JPQL, som ligner SQL-forespørgsler, bruges til at forespørge gemte enheder.

Hvad er dvale?

Hibernate er en ramme, der kan bruges til objektrelationel kortlægning beregnet til Java-programmeringssprog. Mere specifikt er det et ORM-bibliotek (objekt-relationel kortlægning), som kan bruges til at kortlægge objektrelationsmodel i konventionel relationel model. Enkelt sagt skaber det en kortlægning mellem Java-klasser og tabeller i relationelle databaser, også mellem Java til SQL-datatyper. Hibernate kan også bruges til data forespørgsel og hentning ved at generere SQL-opkald.Derfor er programmereren lettet over den manuelle håndtering af resultatsæt og konvertering af objekter. Hibernate frigives som en fri og open source ramme distribueret under GNU licens. En implementering til JPA API findes i Hibernate 3. 2 og senere versioner. Gavin King er grundlæggeren af ​​Hibernate.

Hvad er forskellen mellem JPA og Hibernate?

JPA er en ramme for håndtering af relationsdata i Java-programmer, mens Hibernate er en specifik implementering af JPA (så ideelt kan ikke JPA og Hibernate direkte sammenlignes). Hibernate er med andre ord en af ​​de mest populære rammer, der implementerer JPA. Hibernate implementerer JPA gennem Hibernate Annotation og EntityManager biblioteker, der implementeres oven på Hibernate Core biblioteker. Både EntityManager og Annotations følger livscyklussen for Hibernate. Den nyeste JPA-version (JPA 2. 0) understøttes fuldt ud af Hibernate 3. 5. JPA har fordel for at have en grænseflade, der er standardiseret, så udviklerne bliver mere bekendt med det end dvaletilstand. På den anden side kan indfødte Hibernate API'er betragtes som mere magtfulde, fordi dets funktioner er en superset af den af ​​JPA.