0Pricing
Spring Boot 4 Microservices & REST APIs · درس

التقسيم إلى صفحات والفرز

أعد مجموعات البيانات الكبيرة بكفاءة

التقسيم إلى صفحات والفرز درس مجاني في Spring Boot 4 Microservices & REST APIs على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Spring Boot 4 Microservices & REST APIs، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Spring Boot 4 Microservices & REST APIs 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Why Paginate

Returning thousands of rows at once is slow and memory-heavy. Pagination fetches one page at a time.

Spring Data provides Pageable, Page, and Sort for this.

PagingAndSortingRepository

JpaRepository already includes paging and sorting support, so you get these methods for free.

public interface UserRepository
    extends JpaRepository<User, Long> {
}

Creating a Pageable

PageRequest.of(page, size) builds a request. Page numbers are zero-based.

Pageable pageable = PageRequest.of(0, 20);
Page<User> page = userRepository.findAll(pageable);

The Page Object

A Page carries the content plus metadata.

List<User> content = page.getContent();
long total = page.getTotalElements();
int pages = page.getTotalPages();
boolean hasNext = page.hasNext();

Sorting

Build a Sort and pass it alone or inside a PageRequest.

Sort sort = Sort.by("name").ascending();
List<User> sorted = userRepository.findAll(sort);

Combining Sort and Paging

Pass a Sort into PageRequest.of.

Pageable pageable = PageRequest.of(
    0, 20, Sort.by("name").descending());
Page<User> page = userRepository.findAll(pageable);

Multiple Sort Orders

Chain sort orders for tie-breaking.

Sort sort = Sort.by(
    Sort.Order.asc("lastName"),
    Sort.Order.desc("createdAt"));

Paging Derived Queries

Add a Pageable parameter to any derived query method.

Page<User> findByActiveTrue(Pageable pageable);

Slice vs Page

A Slice knows only whether a next page exists, skipping the expensive COUNT query that Page runs. Use Slice for infinite scroll.

Slice<User> findByActiveTrue(Pageable pageable);

Pageable from the Web Layer

Spring MVC can bind page, size, and sort request params into a Pageable automatically.

@GetMapping("/users")
public Page<User> list(Pageable pageable) {
    return userRepository.findAll(pageable);
}
// GET /users?page=0&size=20&sort=name,desc

Mapping Page Content to DTOs

Transform a Page's entities to DTOs while preserving pagination metadata with map.

Page<UserDto> dtos = page.map(
    user -> new UserDto(user.getName(), user.getEmail()));

Quick Check

Test your understanding of pagination.

Recap

You learned pagination and sorting:

  • PageRequest.of(page, size) — page is zero-based
  • Page carries content plus totals; Slice skips the count
  • Sort.by(...) for ordering
  • Web layer binds page/size/sort into a Pageable

الأسئلة الشائعة

هل درس «التقسيم إلى صفحات والفرز» مجاني؟

نعم — نص درس «التقسيم إلى صفحات والفرز» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Spring Boot 4 Microservices & REST APIs، انتقل إلى CoddyKit PRO. تتضمن دورة Spring Boot 4 Microservices & REST APIs 4 دروس في المجموع.

ماذا ستتعلم في «التقسيم إلى صفحات والفرز»؟

أعد مجموعات البيانات الكبيرة بكفاءة تتمرن على Spring Boot 4 Microservices & REST APIs مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Spring Boot 4 Microservices & REST APIs؟

لا تُشترط خبرة سابقة. Spring Boot 4 Microservices & REST APIs على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «التقسيم إلى صفحات والفرز»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Spring Boot 4 Microservices & REST APIs هذا؟

نعم. كل درس في Spring Boot 4 Microservices & REST APIs يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الاستعلامات الديناميكية باستخدام Specifications
  2. الإسقاطات وDTOs
  3. التدقيق باستخدام @CreatedDate
  4. التقسيم إلى صفحات والفرز
← العودة إلى Spring Boot 4 Microservices & REST APIs