הבדל בין JPA למצב Hibernate

הבדל בין JPA למצב Hibernate
הבדל בין JPA למצב Hibernate

וִידֵאוֹ: הבדל בין JPA למצב Hibernate

וִידֵאוֹ: הבדל בין JPA למצב Hibernate
וִידֵאוֹ: מה ההבדל בין הפרעת אישיות גבולית לפוסט טראומה מורכבת 2024, נוֹבֶמבֶּר
Anonim

JPA לעומת Hibernate

כמעט כל היישומים הארגוניים נדרשים לגשת למסדי נתונים יחסיים באופן קבוע. אבל בעיה שעמדה בפני טכנולוגיות קודמות (כגון JDBC) הייתה חוסר התאמה של העכבה (הבדל בין טכנולוגיות מונחה עצמים לטכנולוגיות יחסיות). פתרון לבעיה זו הוצג באמצעות הצגת שכבה אבסטרקטית בשם Persistence layer, המקופלת גישה לבסיס הנתונים מהלוגיקה העסקית. JPA (Java Persistence API) היא מסגרת ייעודית לניהול נתונים יחסיים (באמצעות שכבת ההתמדה) ביישומי Java. ישנם יישומים רבים של ספקים של JPA בשימוש בקהילת מפתחי Java. Hibernate הוא היישום הפופולרי ביותר מסוג JPA (DataNucleus, EclipseLink ו-OpenJPA הם כמה אחרים). גרסת ה-JPA החדשה ביותר (JPA 2.0) נתמכת במלואה על ידי Hibernate 3.5, אשר שוחררה במרץ, 2010.

מה זה JPA?

JPA היא מסגרת לניהול נתונים יחסיים עבור Java. ניתן להשתמש בו עם יישומים המשתמשים ב-JSE (פלטפורמת ג'אווה, מהדורה סטנדרטית) או JEE (פלטפורמת ג'אווה, מהדורת ארגונית). הגרסה הנוכחית שלו היא JPA 2.0, אשר שוחררה ב-10 בדצמבר, 2009. JPA החליף את שעועית הישות EJB 2.0 ו-EJB 1.1 (שזכו לביקורת נוקבת בשל היותם כבדים על ידי קהילת מפתחי Java). למרות שעועית ישות (ב-EJB) סיפקה אובייקטים מתמשכים, מפתחים רבים היו רגילים להשתמש באובייקטים קלים יחסית שהוצעו על ידי DAO (Data Access Objects) ומסגרות דומות אחרות במקום זאת. כתוצאה מכך, JPA הוצג, והוא תפס רבים מהמאפיינים המסודרים של המסגרות שהוזכרו לעיל.

התמדה כמתואר ב-JPA מכסה את ה-API (מוגדר ב-javax.persistence), JPQL (Java Platform, Enterprise Edition) ומטא נתונים הנדרשים עבור אובייקטים יחסיים. מצב של ישות מתמשכת בדרך כלל נמשך בטבלה. מופעים של ישות תואמים לשורות בטבלה של מסד הנתונים היחסי. מטא נתונים משמשים לביטוי היחסים בין ישויות. הערות או קובצי מתאר XML נפרדים (הפרוסים עם היישום) משמשים לציון מטא נתונים במחלקות ישויות. JPQL, הדומה לשאילתות SQL, משמשים לשאילתות על ישויות מאוחסנות.

מה זה Hibernate?

Hibernate היא מסגרת שניתן להשתמש בה למיפוי יחס אובייקטים המיועד לשפת התכנות Java. ליתר דיוק, זוהי ספריית ORM (מיפוי יחסי אובייקט) שניתן להשתמש בה כדי למפות מודל יחסי אובייקט למודל יחסי קונבנציונלי. במילים פשוטות, הוא יוצר מיפוי בין מחלקות Java וטבלאות במסדי נתונים יחסיים, גם בין סוגי נתונים של Java ל-SQL. ניתן להשתמש ב-Hibernate גם עבור שאילתות ואחזור נתונים על ידי יצירת קריאות SQL.לכן, המתכנת משוחרר מהטיפול הידני בקבוצות תוצאות והמרת אובייקטים. Hibernate משוחרר כמסגרת חינמית וקוד פתוח המופצת תחת רישיון GNU. מימוש עבור JPA API מסופק ב-Hibernate 3.2 ובגירסאות מאוחרות יותר. גאווין קינג הוא המייסד של Hibernate.

מה ההבדל בין JPA לבין Hibernate?

JPA היא מסגרת לניהול נתונים יחסיים ביישומי Java, בעוד Hibernate הוא יישום ספציפי של JPA (כך שבאופן אידיאלי, לא ניתן להשוות ישירות בין JPA לבין Hibernate). במילים אחרות, Hibernate היא אחת המסגרות הפופולריות ביותר המיישמת JPA. Hibernate מיישמת JPA דרך Hibernate Annotation וספריות EntityManager המיושמות על גבי ספריות Hibernate Core. גם EntityManager וגם Annotations עוקבים אחר מחזור החיים של Hibernate. גרסת ה-JPA החדשה ביותר (JPA 2.0) נתמכת באופן מלא על ידי Hibernate 3.5. ל-JPA יש יתרון שיש לו ממשק סטנדרטי, כך שקהילת המפתחים תכיר אותו יותר מאשר Hibernate.מצד שני, ממשקי API מקוריים של Hibernate יכולים להיחשב חזקים יותר מכיוון שהתכונות שלו הן ערכת-על של זו של JPA.

מוּמלָץ: