በ JPA እና Hibernate መካከል ያለው ልዩነት

በ JPA እና Hibernate መካከል ያለው ልዩነት
በ JPA እና Hibernate መካከል ያለው ልዩነት

ቪዲዮ: በ JPA እና Hibernate መካከል ያለው ልዩነት

ቪዲዮ: በ JPA እና Hibernate መካከል ያለው ልዩነት
ቪዲዮ: የራስ ገዝነት ጥያቄዎች በካሽሚር እና በኢትዮጵያ 2024, ህዳር
Anonim

JPA vs Hibernate

ከሞላ ጎደል ሁሉም የኢንተርፕራይዝ አፕሊኬሽኖች ተዛማጅ ዳታቤዞችን ለማግኘት ያስፈልጋሉ። ነገር ግን ቀደም ባሉት ቴክኖሎጂዎች (እንደ ጄዲቢሲ ያሉ) ያጋጠመው ችግር የግንዛቤ አለመመጣጠን (በነገር ተኮር እና ተያያዥ ቴክኖሎጂዎች መካከል ያለው ልዩነት) ነበር። ለዚህ ችግር መፍትሄ የመጣው ከቢዝነስ አመክንዮ የዳታቤዝ መዳረሻን የሚያጠቃልለው ፐርሲስቴንስ ንብርብር የተባለ ረቂቅ ንብርብር በማስተዋወቅ ነው። JPA (Java Persistence API) በጃቫ አፕሊኬሽኖች ውስጥ ለግንኙነት መረጃ አስተዳደር (የጽናት ንብርብርን በመጠቀም) የተዘጋጀ ማዕቀፍ ነው። በጃቫ ገንቢ ማህበረሰብ ውስጥ ጥቅም ላይ የሚውሉ ብዙ የጄፒኤ የአቅራቢ አተገባበርዎች አሉ።Hibernate በጣም ታዋቂው የ JPA ትግበራ ነው (DataNucleus፣ EclipseLink እና OpenJPA አንዳንድ ሌሎች ናቸው)። አዲሱ የJPA ስሪት (JPA 2.0) ሙሉ በሙሉ በ Hibernate 3.5 ተደግፏል፣ እሱም በመጋቢት፣ 2010 ተለቀቀ።

JPA ምንድን ነው?

JPA ለጃቫ ተዛማጅ መረጃዎችን የማስተዳደር ማዕቀፍ ነው። JSE (Java Platform, Standard Edition) ወይም JEE (Java Platform, Enterprise Edition) ከሚጠቀሙ መተግበሪያዎች ጋር መጠቀም ይቻላል. አሁን ያለው እትም JPA 2.0 ነው፣ እሱም በታህሳስ 10፣ 2009 የተለቀቀው። JPA EJB 2.0 እና EJB 1.1 ህጋዊ አካላትን ባቄላ ተክቷል (በጃቫ ገንቢ ማህበረሰብ ከባድ ክብደት አላቸው በሚል ከፍተኛ ትችት ደርሶባቸዋል)። ምንም እንኳን ህጋዊ ባቄላ (በኢ.ጄ.ቢ.) ዘላቂነት ያላቸውን ነገሮች ቢያቀርብም፣ ብዙ ገንቢዎች በምትኩ በDAO (የውሂብ ተደራሽነት ዕቃዎች) እና ሌሎች ተመሳሳይ ማዕቀፎች የቀረቡትን በአንጻራዊነት ቀላል ክብደት ያላቸውን ነገሮች ለመጠቀም ጥቅም ላይ ውለዋል። በውጤቱም፣ JPA ተጀመረ፣ እና ብዙዎቹን ከላይ የተጠቀሱትን የማዕቀፎችን ንፁህ ባህሪያት ያዘ።

ፅናት በጄፒኤ ላይ እንደተገለጸው ኤፒአይን ይሸፍናል (በጃቫክስ ይገለጻል።ጽናት)፣ JPQL (Java Platform፣ Enterprise Edition) እና ለግንኙነት ነገሮች የሚያስፈልጉ ሜታዳታ። የፅናት ህጋዊ አካል ሁኔታ በተለምዶ በጠረጴዛ ላይ ይቆያል። የአንድ አካል ምሳሌዎች ከግንኙነቱ የውሂብ ጎታ ሰንጠረዥ ረድፎች ጋር ይዛመዳሉ። ሜታዳታ በህጋዊ አካላት መካከል ያለውን ግንኙነት ለመግለጽ ጥቅም ላይ ይውላል። ማብራሪያዎች ወይም የተለዩ የኤክስኤምኤል ገላጭ ፋይሎች (ከመተግበሪያው ጋር ተዘርግተዋል) በህጋዊ አካል ክፍሎች ውስጥ ዲበ ውሂብን ለመለየት ጥቅም ላይ ይውላሉ። ከSQL መጠይቆች ጋር ተመሳሳይ የሆነው JPQL፣ የተከማቹ አካላትን ለመጠየቅ ይጠቅማል።

Hibernate ምንድነው?

Hibernate ለጃቫ ፕሮግራሚንግ ቋንቋ የታሰበ ነገር-ተዛማጅ ካርታ ስራ ላይ ሊውል የሚችል ማዕቀፍ ነው። በተለየ መልኩ፣ የነገር-ግንኙነት ሞዴልን ወደ ተለመደው የግንኙነት ሞዴል ለመቅረጽ የሚያገለግል ORM (የነገር-ግንኙነት ካርታ) ቤተ-መጽሐፍት ነው። በቀላል አነጋገር፣ በጃቫ ክፍሎች እና በሰንጠረዦች መካከል በተዛማጅ የውሂብ ጎታዎች፣ እንዲሁም በጃቫ እስከ SQL የውሂብ አይነቶች መካከል የካርታ ስራን ይፈጥራል። Hibernate የSQL ጥሪዎችን በማመንጨት ለመረጃ መጠይቅ እና ሰርስሮ ለማውጣትም ሊያገለግል ይችላል።ስለዚህ ፕሮግራመርተኛው የውጤት ስብስቦችን በእጅ አያያዝ እና እቃዎችን ከመቀየር እፎይታ ያገኛል. Hibernate በጂኤንዩ ፈቃድ ስር የሚሰራጩ እንደ ነፃ እና ክፍት ምንጭ ማዕቀፍ ተለቋል። ለጃፓ ኤፒአይ አተገባበር በ Hibernate 3.2 እና በኋላ ስሪቶች ቀርቧል። ጋቪን ኪንግ የ Hibernate መስራች ነው።

በ JPA እና Hibernate መካከል ያለው ልዩነት ምንድን ነው?

JPA በጃቫ አፕሊኬሽኖች ውስጥ ተዛማጅ መረጃዎችን የማስተዳደር ማዕቀፍ ሲሆን Hibernate ደግሞ የተለየ የJPA ትግበራ ነው (በመሆኑም JPA እና Hibernate በቀጥታ ሊነፃፀሩ አይችሉም)። በሌላ አነጋገር, Hibernate JPA ን ከሚተገበሩ በጣም ታዋቂ ማዕቀፎች አንዱ ነው. Hibernate በ Hibernate Core ላይብረሪዎች ላይ በሚተገበሩ በሃይበርኔት ማብራሪያ እና በEntityManager ቤተ-መጻሕፍት በኩል JPA ን ይተገብራል። ሁለቱም የEntityManager እና ማብራሪያዎች የ Hibernate የሕይወት ዑደት ይከተላሉ። አዲሱ የጃፓ ስሪት (JPA 2.0) ሙሉ በሙሉ በ Hibernate 3.5 ይደገፋል። JPA ደረጃውን የጠበቀ በይነገጽ የማግኘት ጥቅም አለው፣ ስለዚህ የገንቢው ማህበረሰብ ከ Hibernate የበለጠ በደንብ ይተዋወቃል።በሌላ በኩል፣ ቤተኛ Hibernate ኤ ፒ አይዎች የበለጠ ኃይለኛ ሊባሉ ይችላሉ ምክንያቱም ባህሪያቱ የJPA የበላይ ስብስብ ናቸው።

የሚመከር: