Pageable
是 Spring Data JPA 中的一個接口,用于在分頁查詢時定義分頁參數。它包含了兩個主要屬性:pageNumber
(頁碼)和 pageSize
(每頁顯示的記錄數)。通過實現這個接口,你可以輕松地對數據庫進行分頁查詢。
Pageable
接口通常與 Page
接口一起使用,Page
接口表示一個分頁查詢的結果,包含了當前頁的數據、總頁數等信息。
下面是一個簡單的例子,展示了如何使用 Pageable
進行分頁查詢:
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
// 自定義分頁查詢方法
Page<User> findByLastName(String lastName, Pageable pageable);
}
// 在服務類中使用分頁查詢
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public Page<User> getUsersByLastName(String lastName, int pageNumber, int pageSize) {
// 創建一個 Pageable 對象
Pageable pageable = PageRequest.of(pageNumber, pageSize);
// 調用自定義的分頁查詢方法
return userRepository.findByLastName(lastName, pageable);
}
}
在這個例子中,我們首先創建了一個 UserRepository
接口,繼承了 JpaRepository
,并添加了一個自定義的分頁查詢方法 findByLastName
。然后,在 UserService
類中,我們使用 PageRequest.of()
方法創建了一個 Pageable
對象,并將其傳遞給 findByLastName
方法進行分頁查詢。