ערכי עמודות ברירת מחדל ב- JPA

1. הקדמה

במדריך זה נבחן ערכי עמודות ברירת מחדל ב- JPA.

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

2. תוך כדי יצירת ישות

הדרך הראשונה להגדיר ערך עמודה ברירת מחדל היא הגדר אותו ישירות כערך נכס של ישות:

משתמש בכיתה ציבורית @Entity {@Id פרטי מזהה ארוך; פרטי מחרוזת firstName = "ג'ון סנואו"; גיל שלם פרטי = 25; נעול בוליאני פרטי = שקר; }

עכשיו, בכל פעם שניצור ישות באמצעות ה- חָדָשׁ המפעיל הוא יגדיר את ערכי ברירת המחדל שסיפקנו:

@Test בטל saveUser_shouldSaveWithDefaultFieldValues ​​() {משתמש משתמש = משתמש חדש (); user = userRepository.save (user); assertEquals (user.getName (), "ג'ון סנואו"); assertEquals (user.getAge (), 25); assertFalse (user.getLocked ()); }

יש חסרון אחד בפתרון זה. כשאנחנו נסתכל על הגדרת טבלת SQL לא נראה שום ערך ברירת מחדל בה:

צור משתמש טבלה (id bigint לא null אילוץ user_pkey מפתח ראשי, שם varchar (255), גיל שלם, בוליאני נעול);

כך, אם נעקוף אותם עם ריק, הישות תישמר ללא כל שגיאה:

@Test בטל saveUser_shouldSaveWithNullName () {משתמש משתמש = משתמש חדש (); user.setName (null); user.setAge (null); user.setLocked (null); user = userRepository.save (user); assertNull (user.getName ()); assertNull (user.getAge ()); assertNull (user.getLocked ()); }

3. בהגדרת הסכימה

ליצור ערך ברירת מחדל ישירות בהגדרת טבלת SQL אנחנו יכולים להשתמש ב- @טור ביאור וקבע את columnDefinition פָּרָמֶטֶר:

משתמש בכיתה ציבורית @Entity {@Id מזהה ארוך; @Column (columnDefinition = "varchar (255) ברירת מחדל 'ג'ון שלג'") שם מחרוזת פרטי; @Column (columnDefinition = "ברירת מחדל שלמה 25") גיל שלם פרטי; @Column (columnDefinition = "שגיאת ברירת מחדל בוליאנית") בוליאני פרטי נעול; }

באמצעות שיטה זו ערך ברירת המחדל יהיה בהגדרת טבלת SQL:

צור משתמש טבלה (id bigint לא null constraint user_pkey מפתח ראשי, שם varchar (255) ברירת מחדל 'ג'ון סנואו', גיל שלם כברירת מחדל 35, ברירת מחדל בוליאנית נעולה false);

והישות תישמר כראוי עם ערכי ברירת המחדל:

@Test בטל saveUser_shouldSaveWithDefaultSqlValues ​​() {משתמש משתמש = משתמש חדש (); user = userRepository.save (user); assertEquals (user.getName (), "ג'ון סנואו"); assertEquals (user.getAge (), 25); assertFalse (user.getLocked ()); }

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

4. סיכום

במדריך קצר זה למדנו כיצד להגדיר ערכי עמודות ברירת מחדל ב- JPA.

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


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