Hibernate – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מאין תקציר עריכה
הרחבה
שורה 1:
{{בעבודה מתמשכת}}
{{תוכנה
|שם=Hibernate
שורה 27 ⟵ 26:
* מיפוי [[enum]] של ג'אווה לעמודות כאילו שהם משתני מחלקה רגילים.
* מיפוי של משתנה מחלקה יחיד לכמה עמודות.
 
== סקירה ==
הייברנייט מאפשרת [[persistence]] "שקוף" עבור [[POJO]]s. הדרישה היחידה מ[[מחלקה (תכנות)|מחלקה]] התומכת ב-persistence היא שיהיה לו [[בנאי (מדעי המחשב)|קונסטרקטור]] שאינו מקבל ארגומנטים (לא חובה שהוא יהיה public). בחלק מהיישומים, למען תפקוד תקין נדרשות גם אנוטציות מיוחדות ל[[מתודה|מתודות]] <code>()equals</code> ו-<code>()hashCode</code>.
 
ניתן להשתמש ב-Hibernate ביישומי Java עצמאיים (standalone) כמו גם ביישומי [[Java Enterprise Edition|Java EE]] המשתמשים ב-[[Java Servlet|servlets]] ,[[Enterprise JavaBeans|EJB]] session beans ו-[[JBI]] service components. כמו כן ניתן להשתמש בהייברנייט כשירות מתוך [[שפת תכנות|שפות תכנות]] אחרות. לדוגמה, [[Adobe]] שילבה את הייברנייט בגרסה 9 של [[ColdFusion]] (אשר רצה על גבי [[שרת יישומים|שרתי יישומים]] של Java EE) עם שכבת [[אבסטרקציה (מדעי המחשב)|אבסטרקציה]] של [[תחביר]] ופונקציות חדשות שהתווספו ל-[[CFML]].
 
הייברנייט מספקת שפה הדומה לשפת [[SQL]] הנקראת ([[Hibernate Query Language]] (HQL, אשר מאפשרת לכתוב שאילתות דומות לשאילתות SQL כנגד אובייקטי הנתונים של הייברנייט.
 
== entities ו-components ==
ב[[ז'רגון]] של הייברנייט, '''entity''' (יישות) הוא אובייקט עצמאי שמכניזם ה-persistence של הייברנייט יכול לטפל בו בנפרד מאובייקטים אחרים. לעומת זאת, '''component''' (רכיב) הוא אובייקט הכפוף ליישויות אחרות. לדוגמה, אובייקט <code>Album</code> ("[[אלבום מוזיקה]]") יכול לייצג יישות, אבל אובייקטי <code>Track</code> ("שיר") המשוייכים לאובייקטי <code>Album</code> ייצגו רכיבים של יישות ה"אלבום" (בהנחה שניתן לשמור או לאחזר "שירים" מבסיס הנתונים רק דרך אובייקט ה"אלבום").
 
== ראו גם ==