Java Persistence API

standard mapowania obiektowo-relacyjnego

Java Persistence API (skrót JPA) – oficjalny standard mapowania obiektowo-relacyjnego (ORM) firmy Sun Microsystems dla języka programowania Java.

Powstanie standardu

edytuj

Standard JPA jest elementem standardu EJB 3.0 zdefiniowanym w JSR 220. Enterprise JavaBeans 3.0 został utworzony by zastąpić wersję poprzednią EJB 2.1, w której był inny model persystencji - CMP. Końcowa wersja standardu EJB 3.0 została wydana w maju 2006 roku.

W skład grupy ekspertów zajmujących się tworzeniem JPA wszedł twórca Hibernate: Gavin King. Oficjalny FAQ na stronach Sun podaje, iż na postać standardu miał wpływ nie tylko Hibernate, ale także JDO i TopLink.

Najnowszą wersję standardu 2.1 ukończono w ramach JSR 338

Opis technologii

edytuj

JavaPersistence API jest standardem ORM dla języka Java. Z punktu widzenia programisty jest to możliwość operowania na obiektach - zwanych encjami - oraz zapisywania wyników operacji do relacyjnej bazy danych za pomocą obiektu EntityManager. Sposób w jaki obiekty i ich połączenia przekładają się na elementy bazy danych są definiowane za pomocą adnotacji lub dokumentów XML. Poza standardowym zestawem operacji udostępnianych przez obiekt EntityManager standard JPA definiuje język zapytań JPA Query Language podobny do SQL.

Implementacje w serwerach aplikacyjnych

edytuj

Poza wzorcową implementacją standardu JPA - czyli serwera aplikacyjnego GlassFish, istnieje wiele innych implementacji wspomnianego standardu. Serwery aplikacyjne dostarczające usług ORM zgodnie ze standardem Java Persistence API:

Serwery aplikacyjne i ich implementacje JPA
Silnik implementujący JPA Serwer aplikacyjny Producent serwera
Hibernate EntityManager JBoss AS Red Hat
TopLink Oracle Application Server/OC4J Oracle Corporation
Kodo WebLogic Server Oracle Corporation
Open JPA Apache Geronimo, Open EJB Apache Software Foundation

Warto podkreślić, iż niektóre serwery aplikacyjne udostępniają możliwość zamiany dostawcy usług ORM zgodnie ze standardem JPA.

Zależności między JPA, EJB 3.0 oraz Java EE 5

edytuj

JPA jest elementem standardu EJB 3.0 a ten z kolei wchodzi w skład Java EE 5. Usługi standardu EJB są zwykle realizowane przez specjalne środowisko uruchomieniowe zwane serwerem aplikacyjnym. Istnieje jednak możliwość korzystania z tego standardu w aplikacjach nie korzystających z serwera aplikacyjnego. Zapewnia ją, między innymi, implementacja JPA dostarczana w ramach projektu Hibernate.

Zobacz też

edytuj

Linki zewnętrzne

edytuj