ההבדל בין @Size, @Length ו- @Column (אורך = ערך)
1. סקירה כללית
במדריך מהיר זה, נסתכל על JSR-330 @גודל, שינה @אורך ו- JPA @טורשל אורך תְכוּנָה.
בהתחלה מסמיק, אלה אולי נראים זהים, אך הם מבצעים פונקציות שונות. בואו נראה איך.
2. מקורות
במילים פשוטות, כל ההערות הללו נועדו לתקשר בגודל של שדה.
@גודל ו @אורך דומים. אנו יכולים להשתמש באחד מהם כדי לאמת את גודל השדה. הראשון הוא הערה סטנדרטית של Java והשני ספציפי למצב שינה.
@טורעם זאת, היא הערה של JPA בה אנו משתמשים כדי לשלוט בהצהרות DDL.
עכשיו, בואו נעבור על כל אחד מהם בפירוט.
3. @גודל
לצורך אימות, נשתמש @גודל, הערת אימות שעועית. בואו נשתמש בנכס שם אמצעי ביאור עם @גודל כדי לאמת את ערכו בין התכונות דקה ו מקסימום:
משתמש בכיתה ציבורית {// ... @Size (min = 3, max = 15) private String middleName; // ...}
הכי חשוב, @גודל הופכת את השעועית לבלתי תלויה ב- JPA וספקיה כגון Hibernate. כתוצאה מכך, זה נייד יותר מ- @אורך.
4. @אורך
וכפי שאמרנו זה עתה, @אורך היא הגרסה הספציפית למצב שינה @גודל. בואו לאכוף את הטווח עבור שם משפחה באמצעות @אורך:
משתמש בכיתה ציבורית @Entity {// ... @Length (min = 3, max = 15) שם משפחה פרטי מחרוזת; // ...}
5. @Column (אורך = ערך)
@טורעם זאת, הוא שונה לגמרי.
נשתמש @טור ל לציין מאפיינים ספציפיים של עמודת מסד הנתונים הפיזי. בואו נשתמש ב- אורך תכונה של @טור ביאור כדי לציין את אורך העמודה בעל ערך המחרוזת:
משתמש בכיתה ציבורית @Entity {@Column (אורך = 3) פרטי מחרוזת שם פרטי; // ...}
כתוצאה מכך, העמודה שהתקבלה תיווצר כ- VARCHAR (3) וניסיון להוסיף מחרוזת ארוכה יותר יביא לשגיאת SQL.
שים לב שנשתמש @טור רק כדי לציין מאפייני עמודות טבלה מכיוון שהוא אינו מספק אימות.
כמובן, אנחנו יכולים להשתמש @טור ביחד עם @גודל כדי לציין מאפיין עמודת מסד נתונים עם אימות שעועית.
משתמש בכיתה ציבורית @Entity {// ... @Column (אורך = 5) @Size (min = 3, max = 5) עיר מחרוזת פרטית; // ...}
6. מסקנה
במכתב זה למדנו על ההבדלים בין @גודל ביאור, @אורך ביאור ו @טורשל אורך תְכוּנָה. בדקנו כל אחד בנפרד בתחומי השימוש בהם.
כמו תמיד, קוד המקור המלא של הדוגמאות זמין באתר GitHub.