Verschil tussen JPA en Hibernate

Verschil tussen JPA en Hibernate
Verschil tussen JPA en Hibernate

Video: Verschil tussen JPA en Hibernate

Video: Verschil tussen JPA en Hibernate
Video: Complexiteit deel 001 Introductie 2024, November
Anonim

JPA vs Hibernate

Bijna alle bedrijfsapplicaties moeten regelmatig toegang krijgen tot relationele databases. Maar een probleem bij eerdere technologieën (zoals JDBC) was de impedantie-mismatch (verschil tussen objectgeoriënteerde en relationele technologieën). Een oplossing voor dit probleem werd geïntroduceerd door de introductie van een abstracte laag, Persistence-laag genaamd, die de toegang tot de database vanuit de bedrijfslogica inkapselt. JPA (Java Persistence API) is een raamwerk dat speciaal is bedoeld voor het beheer van relationele gegevens (met behulp van de persistentielaag) in Java-toepassingen. Er zijn veel leveranciersimplementaties van JPA die worden gebruikt binnen de Java-ontwikkelaarsgemeenschap. Hibernate is de meest populaire implementatie van JPA (DataNucleus, EclipseLink en OpenJPA zijn enkele andere). De nieuwste JPA-versie (JPA 2.0) wordt volledig ondersteund door Hibernate 3.5, die in maart 2010 werd uitgebracht.

Wat is JPA?

JPA is een raamwerk voor het beheren van relationele gegevens voor Java. Het kan worden gebruikt met applicaties die gebruikmaken van JSE (Java Platform, Standard Edition) of JEE (Java Platform, Enterprise Edition). De huidige versie is JPA 2.0, die werd uitgebracht op 10 december 2009. JPA verving EJB 2.0 en EJB 1.1 entiteitbeans (die zwaar werden bekritiseerd omdat ze zwaar waren door de Java-ontwikkelaarsgemeenschap). Hoewel entiteitbeans (in EJB) persistentie-objecten leverden, waren veel ontwikkelaars gewend om in plaats daarvan relatief lichtgewicht objecten te gebruiken die worden aangeboden door DAO (Data Access Objects) en andere vergelijkbare frameworks. Als gevolg hiervan werd JPA geïntroduceerd, en het bevatte veel van de leuke functies van de hierboven genoemde frameworks.

Persistentie zoals beschreven in JPA dekt de API (gedefinieerd in javax.persistentie), JPQL (Java Platform, Enterprise Edition) en metadata die nodig zijn voor relationele objecten. De status van een persistentie-entiteit wordt doorgaans in een tabel bewaard. Instanties van een entiteit komen overeen met rijen van de tabel van de relationele database. Metadata wordt gebruikt om de relaties tussen entiteiten uit te drukken. Annotaties of afzonderlijke XML-descriptorbestanden (geïmplementeerd met de toepassing) worden gebruikt om metagegevens in entiteitsklassen te specificeren. JPQL, dat vergelijkbaar is met SQL-query's, wordt gebruikt om opgeslagen entiteiten te doorzoeken.

Wat is Hibernate?

Hibernate is een raamwerk dat kan worden gebruikt voor object-relationele mapping bedoeld voor Java-programmeertaal. Meer specifiek is het een ORM-bibliotheek (object-relationele mapping) die kan worden gebruikt om object-relationele modellen in kaart te brengen in een conventioneel relationeel model. In eenvoudige bewoordingen creëert het een toewijzing tussen Java-klassen en tabellen in relationele databases, ook tussen Java-naar-SQL-gegevenstypen. Hibernate kan ook worden gebruikt voor het opvragen en ophalen van gegevens door het genereren van SQL-aanroepen. Daarom is de programmeur verlost van het handmatig afhandelen van resultatensets en het converteren van objecten. Hibernate is uitgebracht als een gratis en open source framework dat wordt gedistribueerd onder GNU-licentie. Een implementatie voor JPA API wordt geleverd in Hibernate 3.2 en latere versies. Gavin King is de oprichter van Hibernate.

Wat is het verschil tussen JPA en Hibernate?

JPA is een raamwerk voor het beheren van relationele gegevens in Java-toepassingen, terwijl Hibernate een specifieke implementatie van JPA is (dus idealiter kunnen JPA en Hibernate niet direct worden vergeleken). Met andere woorden, Hibernate is een van de meest populaire frameworks die JPA implementeert. Hibernate implementeert JPA via Hibernate Annotation en EntityManager-bibliotheken die bovenop Hibernate Core-bibliotheken worden geïmplementeerd. Zowel EntityManager als Annotations volgen de levenscyclus van Hibernate. De nieuwste JPA-versie (JPA 2.0) wordt volledig ondersteund door Hibernate 3.5. JPA heeft het voordeel dat het een gestandaardiseerde interface heeft, zodat de ontwikkelaarsgemeenschap er meer bekend mee zal zijn dan Hibernate. Aan de andere kant kunnen native Hibernate-API's als krachtiger worden beschouwd omdat de functies een superset zijn van die van JPA.

Aanbevolen: