Mikä on JPA?
JPA (Java Persistence API) on Java-spesifikaatio, jota käytetään Java-objektin ja relaatiotietokannan väliseen dataan pääsyyn, hallintaan ja säilytykseen. Sitä pidetään vakiolähestymistavana objektien relaatiokartoituksessa.
polymorfismi javassa
JPA voidaan nähdä siltana olio-toimialuemallien ja relaatiotietokantajärjestelmien välillä. Spesifikaationa JPA ei suorita mitään toimintoa itse. Se vaatii siis täytäntöönpanoa. Joten ORM-työkalut, kuten Hibernate, TopLink ja iBatis, toteuttavat JPA-määritykset tietojen pysyvyyttä varten.
Mikä on Hibernate?
Hibernate on Java-kehys, jota käytetään Java-objektien tallentamiseen relaatiotietokantajärjestelmään. Se on avoimen lähdekoodin, kevyt, ORM (Object Relational Mapping) -työkalu.
Hibernate on JPA:n toteutus. Joten se noudattaa yhteisen edustajakokouksen antamia yhteisiä standardeja.
JPA:n tarve
Kuten olemme toistaiseksi nähneet, JPA on eritelmä. Se tarjoaa yhteisen prototyypin ja toiminnallisuuden ORM-työkaluille. Toteuttamalla saman spesifikaation kaikki ORM-työkalut (kuten Hibernate, TopLink, iBatis) noudattavat yhteisiä standardeja. Jos haluamme tulevaisuudessa vaihtaa sovelluksemme yhdestä ORM-työkalusta toiseen, voimme tehdä sen helposti.
JPA vs. Hibernate
JPA | Lepotila |
---|---|
Java Persistence API (JPA) määrittää relaatiotietojen hallinnan Java-sovelluksissa. | Hibernate on Object-Relational Mapping (ORM) -työkalu, jota käytetään Java-objektin tilan tallentamiseen tietokantaan. |
Se on vain erittely. Useat ORM-työkalut toteuttavat sen tietojen pysyvyyden varmistamiseksi. | Se on yksi yleisimmin käytetyistä JPA-toteutuksista. |
Se on määritelty kohdassa javax.persistence paketti. | Se on määritelty kohdassa org.hibernate paketti. |
The EntityManagerFactory käyttöliittymää käytetään vuorovaikutukseen pysyvyysyksikön entiteettienhallintatehtaan kanssa. Siten se tarjoaa kokonaisuuden johtajan. | Se käyttää SessionFactory käyttöliittymä istuntoesiintymien luomiseen. |
Se käyttää EntityManager käyttöliittymä yhdistettyjen entiteettiluokkien esiintymien luomiseen, lukemiseen ja poistamiseen. Tämä käyttöliittymä on vuorovaikutuksessa pysyvyyskontekstin kanssa. | Se käyttää Istunto käyttöliittymä yhdistettyjen entiteettiluokkien esiintymien luomiseen, lukemiseen ja poistamiseen. Se toimii ajonaikaisena käyttöliittymänä Java-sovelluksen ja lepotilan välillä. |
Se käyttää Java Persistence Query Language (JPQL) oliopohjaisena kyselykielenä tietokantatoimintojen suorittamiseen. | Se käyttää Hibernate-kyselykieli (HQL) oliopohjaisena kyselykielenä tietokantatoimintojen suorittamiseen. |