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