הסבר על הערת @JoinColumn

1. הקדמה

ההערה javax.persistence.JoinColumn מסמן עמודה עבור כעמודת הצטרפות עבור שיוך ישויות או אוסף אלמנטים.

במדריך מהיר זה נציג כמה דוגמאות לבסיסי @JoinColumn נוֹהָג.

2. @אחד לאחד דוגמה למיפוי

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

משרד @Entity בכיתה ציבורית {@OneToOne (fetch = FetchType.LAZY) @JoinColumn (name = "addressId") כתובת כתובת פרטית; }

דוגמת הקוד לעיל תיצור מפתח זר המקשר את ה- מִשׂרָד ישות עם המפתח הראשי מה- כתובת יֵשׁוּת. שם עמודת המפתח הזר ב- מִשׂרָד הישות מוגדרת על ידי שֵׁם תכונה.

3. @אחד לרבים דוגמה למיפוי

בעת שימוש ב- @אחד לרבים אנו יכולים להשתמש ב- ממופה על ידי פרמטר כדי לציין שהעמודה הנתונה בבעלות ישות אחרת.

עובד בכיתה ציבורית @Entity {@ Id פרטי מזהה ארוך; @OneToMany (fetch = FetchType.LAZY, mappedBy = "עובד") הודעות דוא"ל ברשימה פרטית; } @Entity class class דוא"ל {@ManyToOne (fetch = FetchType.LAZY) @JoinColumn (name = "עובד_איד") עובד שכיר פרטי; }

בדוגמה שלעיל, אימייל (ישות הבעלים) כוללת עמודת הצטרפות תג עובד המאחסן את ערך ה- id ויש לו מפתח זר ל עוֹבֵד יֵשׁוּת.

4. @ הצטרף לעמודות

במצבים בהם אנו רוצים ליצור מספר עמודות צירוף אנו יכולים להשתמש ב- @ הצטרף לעמודות ביאור:

@Entity Office בכיתה ציבורית {@ManyToOne (fetch = FetchType.LAZY) @JoinColumns ({@JoinColumn (name = "ADDR_ID", referencedColumnName = "ID"), @JoinColumn (name = "ADDR_ZIP", referencedColumnName = "ZIP")) }) כתובת כתובת פרטית; } 

הדוגמה לעיל תיצור שני מפתחות זרים המצביעים על תְעוּדַת זֶהוּת ו רוכסן עמודות ב כתובת יֵשׁוּת:

5. מסקנה

במאמר זה למדנו כיצד להשתמש ב- @JoinColumn ביאור. הראינו דוגמאות כיצד ליצור גם שיוך ישות יחיד וגם אוסף אלמנטים.

כמו תמיד, כל קוד המקור זמין ב- GitHub.