ЈПА вс мировање
Готово све пословне апликације су потребне да редовно приступају релацијским базама података. Али проблем са којим су се суочиле раније технологије (попут ЈДБЦ) била је неусклађеност импеданције (разлика између објектно оријентисаних и релацијских технологија). Решење за овај проблем уведено је увођењем апстрактног слоја који се зове Персистент лаиер, који обухвата приступ бази података из пословне логике. ЈПА (Јава Персистенце АПИ) је оквир намењен управљању релацијским подацима (користећи слој упорности) у Јава апликацијама. Постоје многе имплементације ЈПА-е од стране добављача које се користе у заједници Јава програмера. Хибернате је најпопуларнија таква примена ЈПА (ДатаНуцлеус, ЕцлипсеЛинк и ОпенЈПА су неке друге). Најновију верзију ЈПА (ЈПА 2.0) у потпуности подржава Хибернате 3.5 који је објављен у марту 2010.
Шта је ЈПА?
ЈПА је оквир за управљање релацијским подацима за Јаву. Може се користити са апликацијама које користе ЈСЕ (Јава Платформ, Стандард Едитион) или ЈЕЕ (Јава Платформ, Ентерприсе Едитион). Његова тренутна верзија је ЈПА 2.0, која је објављена 10. децембра 2009. ЈПА је заменио ентитетски грах ЕЈБ 2.0 и ЕЈБ 1.1 (које је јава заједница програмера жестоко критиковала због велике тежине). Иако је ентитетски грах (у ЕЈБ) пружио постојаност објеката, многи програмери су користили релативно лагане предмете које нуди ДАО (Дата Аццесс Објецтс) и други слични оквири. Као резултат тога, уведен је ЈПА, који је обухватио многе уредне карактеристике горе поменутих оквира.
Постојаност описана у ЈПА обухвата АПИ (дефинисан у јавак.персистент), ЈПКЛ (Јава Платформ, Ентерприсе Едитион) и метаподатке потребне за релацијске објекте. Стање ентитета који истраје обично се задржава на табели. Примјери ентитета одговарају редовима таблице релацијске базе података. Метаподаци се користе за исказивање односа између ентитета. Биљешке или засебне датотеке дескриптора КСМЛ (распоређене у апликацији) користе се за специфицирање метаподатака у ентитетским класама. ЈПКЛ, који је сличан СКЛ упитима, користи се за упис похрањених ентитета.
Шта је хибернација?
Хибернација је оквир који се може користити за објектно-релацијско мапирање намењен Јава програмском језику. Тачније, то је ОРМ (објектно-релацијско мапирање) библиотека која се може користити за мапирање објектно-релацијског модела у конвенционални релацијски модел. Једноставно речено, ствара мапирање између класа Јава и табела у релацијским базама података, такође између типова података Јава и СКЛ. Хибернација се такође може користити за постављање података и претраживање генерисањем СКЛ позива. Стога се програмер ослобађа од ручног руковања скуповима резултата и претварањем објеката. Хибернате се издаје као слободни и отворени оквир дистрибуиран под ГНУ лиценцом. Имплементација за ЈПА АПИ дата је у стању хибернације 3.2 и новијим верзијама. Гавин Кинг је оснивач хибернације.
Која је разлика између ЈПА и хибернације?
ЈПА је оквир за управљање релацијским подацима у Јава апликацијама, док је хибернација специфична примена ЈПА (идеално је да се ЈПА и хибернација не могу директно упоређивати). Другим речима, Хибернате је један од најпопуларнијих оквира који примењује ЈПА. Хибернате имплементира ЈПА путем библиотека Хибернате Аннотатион и ЕнтитиМанагер који се имплементирају изнад Хибернате Цоре библиотека. И ЕнтитиМанагер и Напомене прате животни циклус хибернације. Најновија ЈПА верзија (ЈПА 2.0) у потпуности подржава Хибернате 3.5. ЈПА има корист од интерфејса који је стандардизовани, па ће заједница програмера бити познатија од ње хибернације. С друге стране, нативни хибернативни АПИ-ји могу се сматрати моћнијима јер су његове карактеристике суперсет карактеристика ЈПА.