Wat is JPA?
Een JPA (Java Persistence API) is een specificatie van Java die wordt gebruikt voor het openen, beheren en bewaren van gegevens tussen het Java-object en de relationele database. Het wordt beschouwd als een standaardbenadering voor Object Relational Mapping.
JPA kan worden gezien als een brug tussen objectgeoriënteerde domeinmodellen en relationele databasesystemen. Omdat het een specificatie is, voert JPA zelf geen enkele bewerking uit. Het vergt dus implementatie. ORM-tools zoals Hibernate, TopLink en iBatis implementeren dus JPA-specificaties voor gegevenspersistentie.
Wat is Hibernate?
Een Hibernate is een Java-framework dat wordt gebruikt om de Java-objecten in het relationele databasesysteem op te slaan. Het is een open-source, lichtgewicht ORM-tool (Object Relational Mapping).
Hibernate is een implementatie van JPA. Het volgt dus de gemeenschappelijke normen van de PPV.
Behoefte aan PPV
Zoals we tot nu toe hebben gezien, is de PPV een specificatie. Het biedt een gemeenschappelijk prototype en functionaliteit voor ORM-tools. Door dezelfde specificatie te implementeren volgen alle ORM-tools (zoals Hibernate, TopLink, iBatis) de gemeenschappelijke standaarden. Als we in de toekomst onze applicatie van de ene ORM-tool naar de andere willen overschakelen, kunnen we dat eenvoudig doen.
JPA versus slaapstand
PPV | Overwinteren |
---|---|
Java Persistence API (JPA) definieert het beheer van relationele gegevens in de Java-applicaties. | Hibernate is een Object-Relational Mapping (ORM)-tool die wordt gebruikt om de status van een Java-object in de database op te slaan. |
Het is slechts een specificatie. Verschillende ORM-tools implementeren het voor gegevenspersistentie. | Het is een van de meest gebruikte PPV-implementaties. |
Het is gedefinieerd in javax.persistentie pakket. | Het is gedefinieerd in org.hibernate pakket. |
De EntityManagerFactory interface wordt gebruikt voor interactie met de entiteitsmanagerfabriek voor de persistentie-eenheid. Het biedt dus een entiteitsmanager. | Het gebruikt SessieFactory interface om sessie-instanties te maken. |
Het gebruikt Entiteitsmanager interface voor het maken, lezen en verwijderen van bewerkingen voor exemplaren van toegewezen entiteitsklassen. Deze interface werkt samen met de persistentiecontext. | Het gebruikt Sessie interface voor het maken, lezen en verwijderen van bewerkingen voor exemplaren van toegewezen entiteitsklassen. Het gedraagt zich als een runtime-interface tussen een Java-applicatie en Hibernate. |
Het gebruikt Java Persistence Querytaal (JPQL) als objectgeoriënteerde querytaal om databasebewerkingen uit te voeren. | Het gebruikt Querytaal in slaapstand zetten (HQL) als objectgeoriënteerde querytaal om databasebewerkingen uit te voeren. |