מיון תוצאות שאילתות לפי נתוני אביב

1. הקדמה

במדריך זה אנו הולכים ללמוד כיצד למיין תוצאות שאילתות עם נתוני אביב.

ראשית, נסתכל על סכמת הנתונים שרוצים לשאול ולמיין.

ואז, נצלול ישר איך להשיג את נתוני האביב האלה.

בואו נתחיל!

2. נתוני הבדיקה

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

השאלה עליה אנו רוצים לענות היא "מי תופס איזה מושב בחברת התעופה?" אבל כדי להפוך את זה לידידותי יותר למשתמש אנו רוצים למיין לפי מספר המושב.

שם פרטישם משפחהמספר מושב
ג'ילנַפָּח50
עֶרֶבג'קסון94
פרדבלוגים22
ריקיבובי36
סייאקוליסי85

3. תחום

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

כאן עיצבנו את הנוסע שלנו כישות JPA, אבל היינו יכולים באותה מידה לדגם אותו כמסמך MongoDB או כל הפשטה אחרת של מודלים:

@Etity class נוסע {@Id @GeneratedValue @Column (nullable = false) פרטי מזהה ארוך; @Basic (אופציונלי = false) @Column (nullable = false) פרטי מחרוזת שם פרטי; @ Basic (אופציונלי = שקר) @Column (nullable = false) שם משפחה פרטי מחרוזת; @Basic (אופציונלי = שקר) @Column (בטל = שקר) int privateNumber; // בונה, גטרים וכו '}

4. מיון עם נתוני קפיץ

לרשותנו כמה אפשרויות שונות למיון עם Spring Data.

4.1. מיון עם מיין לפי מילת מפתח

אפשרות אחת תהיה להשתמש בגזירת השיטה של ​​Spring Data לפיה השאילתה נוצרת משם השיטה והחתימה.

כל שעלינו לעשות כאן כדי למיין את הנתונים שלנו הוא לכלול את מילת המפתח מיין לפי בשם השיטה שלנו יחד עם שם המאפיינים וכיוון (Asc או Desc) לפיהם אנו רוצים למיין.

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

ממשק PassengerRepository מרחיב את JpaRepository {List findByOrderBySeatNumberAsc (); }

אנו יכולים גם לשלב מילת מפתח זו עם כל השמות הרגילים של שיטת Spring Data.

בואו נראה דוגמה לשיטה שמוצאת נוסעים לפי שם משפחה ו הזמנות לפי מספר מושב:

רשימה findByLastNameOrderBySeatNumberAsc (שם משפחה מחרוזת);

4.2. מיון עם סוג פָּרָמֶטֶר

האפשרות השנייה שלנו היא לכלול א סוג פָּרָמֶטֶר ציון שמות המאפיינים והכיוון לפיהם נרצה למיין:

רשימת הנוסעים = repository.findAll (Sort.by (Sort.Direction.ASC, "seatNumber"));

במקרה זה אנו משתמשים ב- מצא הכל() שיטה והוספת סוג אפשרות כשאתה קורא לזה.

אנו יכולים גם להוסיף פרמטר זה להגדרת שיטה חדשה:

רשימה findByLastName (שם מחרוזת, מיון מיין);

לבסוף, אם אולי אנו עמודים, אנו יכולים לציין את המיון שלנו ב- תומכי לְהִתְנַגֵד:

דף דף = repository.findAll (PageRequest.of (0, 1, Sort.by (Sort.Direction.ASC, "seatNumber")));

5. מסקנה

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

כמו תמיד, תוכל למצוא את הקוד ב- GitHub.


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