JPA @ ביאור בסיסי

1. סקירה כללית

במדריך מהיר זה נחקור את ה- JPA @בסיסי ביאור. נדון גם בהבדל בין @בסיסי ו @טור ביאורים ל- JPA.

2. סוגי בסיס

JPA תומכים בסוגי נתונים שונים של Java כשדות קבועים של ישות, המכונים לעתים קרובות הסוגים הבסיסיים.

סוג בסיסי ממפה ישירות לעמודה במסד הנתונים. אלה כוללים פרימיטיבים של Java ושיעורי העטיפה שלהם, חוּט, java.math.BigInteger ו java.math.BigDecimal, שיעורי מועד זמינים שונים, enums וכל סוג אחר שיישמו java.io ניתן להתבצע באמצעות סריאליזציה.

מצב שינה, כמו כל ספק אחר של ORM, מנהל רישום מסוגים בסיסיים ומשתמש בו כדי לפתור את העמודה הספציפית org.hibernate.type.Type.

3. @בסיסי ביאור

אנחנו יכולים להשתמש ב- @בסיסי הערה לסימון מאפיין מסוג בסיסי:

קורס בכיתה ציבורית @Entity {@Basic @Id מזהה פרטי; @ בסיס פרטי פרטי מחרוזת; ...}

במילים אחרות, ה @בסיסי ביאור על שדה או מאפיין מסמל שזה סוג בסיסי ועל מצב שינה צריך להשתמש במיפוי הסטנדרטי על מנת להתמיד בו.

שים לב שזו ביאור אופציונלי. וכך נוכל לכתוב מחדש את שלנו קוּרס ישות כ:

קורס בכיתה ציבורית @Entity {@Id מזהה פרטי פרטי; שם מחרוזת פרטי; ...}

כאשר איננו מציינים את @בסיסי ביאור לתכונה מסוג בסיסי, ההנחה היא במשתמע, וערכי ברירת המחדל של ביאור זה חלים.

4. מדוע להשתמש @בסיסי ביאור?

ה @בסיסי להערה שתי תכונות, אופציונאלי ו לְהָבִיא. בואו נסתכל מקרוב על כל אחד מהם.

ה אופציונאלי תכונה היא a בוליאני פרמטר שמגדיר אם השדה או המאפיין המסומנים מאפשרים ריק. ברירת המחדל היא נָכוֹן. לכן, אם השדה אינו סוג פרימיטיבי, העמדה הבסיסית מניחה שהיא מאפשרת ערכי null כברירת מחדל.

ה לְהָבִיא תכונה מקבל חבר בספירה לְהָבִיא, איזה מציין אם יש לטעון את השדה או המאפיין המסומנים בעצלתיים או לאחוז בשקיקה. ברירת המחדל היא FetchType.EAGER, אך אנו יכולים לאפשר טעינה עצלה על ידי הגדרת אותה ל FetchType.LAZY.

טעינה עצלה תהיה הגיונית רק כשיש לנו גדול ניתן לבצע סדרתי אובייקט ממופה כסוג בסיסי, כמו במקרה זה, עלות הגישה לשדה יכולה להיות משמעותית.

יש לנו מדריך מפורט המכסה טעינה נלהבת / עצלנית במצב שינה, שלוקחת צלילה עמוקה יותר בנושא.

עכשיו, נניח לא רוצה לאפשר אפסים בשביל שלנו קוּרסשל שֵׁם ורוצים לטעון בעצלתיים גם את הנכס הזה. לאחר מכן נגדיר את שלנו קוּרס ישות כ:

קורס בכיתה ציבורית של @Entity {@ Id מזהה פרטי; @Basic (אופציונלי = false, fetch = FetchType.LAZY) שם מחרוזת פרטי; ...}

עלינו להשתמש במפורש ב @בסיסי ביאור כאשר מוכנים לסטות מערכי ברירת המחדל של אופציונאלי ו לְהָבִיאפרמטרים. אנו יכולים לציין אחת מהתכונות הללו או שתיהן, בהתאם לצרכים שלנו.

5. JPA @בסיסי לעומת @טור

בואו נסתכל על ההבדלים בין @בסיסי ו @טור ביאורים:

  • התכונות של @בסיסי ביאור מוחל על ישויות JPA ואילו התכונות של @טור מוחלים על עמודות מסד הנתונים
  • @בסיסי ביאור של אופציונאלי תכונה מגדירה אם שדה הישות יכול להיות ריק או שלא; מצד שני, @טור ביאור של מאפשרת ערכי null מאפיין מציין אם יכולה להיות עמודת הנתונים המתאימה ריק
  • אנחנו יכולים להשתמש @בסיסי כדי לציין כי יש לטעון שדה בעצלתיים
  • ה @טור ביאור מאפשר לנו לציין את שֵׁם של עמודת מסד הנתונים הממופה

6. מסקנה

במאמר זה למדנו מתי ואיך להשתמש ב- JPA @בסיסי ביאור. דיברנו גם על איך זה שונה מה- @טור ביאור.

כרגיל, דוגמאות קוד זמינות ב- Github.


$config[zx-auto] not found$config[zx-overlay] not found