מה זה JPA?
JPA (Java Persistence API) הוא מפרט של Java המשמש לגישה, ניהול ושמירה על נתונים בין אובייקט Java לבין מסד נתונים יחסי. זה נחשב כגישה סטנדרטית למיפוי יחסי אובייקטים.
ניתן לראות ב-JPA גשר בין מודלים של תחום מונחה עצמים ומערכות מסדי נתונים יחסיים. בהיותו מפרט, JPA אינו מבצע שום פעולה בעצמו. לפיכך, זה דורש יישום. אז, כלי ORM כמו Hibernate, TopLink ו-iBatis מיישמים מפרטי JPA עבור התמדה של נתונים.
מה זה Hibernate?
Hibernate הוא מסגרת Java המשמשת לאחסון אובייקטי Java במערכת מסד הנתונים ההתייחסותיים. זהו כלי קוד פתוח, קל משקל, ORM (מיפוי יחסי אובייקט).
Hibernate הוא יישום של JPA. אז, זה עומד בסטנדרטים הנפוצים שסופקו על ידי ה-JPA.
צורך ב-JPA
כפי שראינו עד כה, JPA הוא מפרט. הוא מספק אב טיפוס ופונקציונליות נפוצים לכלי ORM. על ידי יישום אותו מפרט, כל כלי ה-ORM (כמו Hibernate, TopLink, iBatis) עומדים בסטנדרטים הנפוצים. בעתיד, אם נרצה להעביר את האפליקציה שלנו מכלי ORM אחד לאחר, נוכל לעשות זאת בקלות.
JPA לעומת Hibernate
JPA | שינה |
---|---|
Java Persistence API (JPA) מגדיר את הניהול של נתונים יחסיים ביישומי Java. | Hibernate הוא כלי מיפוי יחסי אובייקט (ORM) המשמש לשמירת המצב של אובייקט Java במסד הנתונים. |
זה רק מפרט. כלים שונים של ORM מיישמים אותו עבור התמדה של נתונים. | זהו אחד המימושים הנפוצים ביותר של JPA. |
זה מוגדר ב javax.persistence חֲבִילָה. | זה מוגדר ב org.hibernate חֲבִילָה. |
ה EntityManagerFactory הממשק משמש לאינטראקציה עם מפעל מנהל הישות עבור יחידת ההתמדה. לפיכך, הוא מספק מנהל ישות. | זה משתמש SessionFactory ממשק ליצירת מופעי Session. |
זה משתמש מנהל ישות ממשק ליצירה, קריאה ומחיקה של פעולות עבור מופעים של מחלקות ישויות ממופה. ממשק זה מקיים אינטראקציה עם הקשר ההתמדה. | זה משתמש מוֹשָׁב ממשק ליצירה, קריאה ומחיקה של פעולות עבור מופעים של מחלקות ישויות ממופה. הוא מתנהג כממשק זמן ריצה בין יישום Java לבין Hibernate. |
זה משתמש שפת שאילתת התמדה ב-Java (JPQL) כשפת שאילתה מונחה עצמים לביצוע פעולות מסד נתונים. | זה משתמש שפת שאילתות שינה (HQL) כשפת שאילתה מונחה עצמים לביצוע פעולות מסד נתונים. |