Add paginated product listing
Problem Context
Product catalog has grown large. We need to paginate results for better performance.
Intermediate
100 points
File Changes (1)
src/main/java/com/example/controller/ProductController.java
MODIFIED
@@ -25 +25 @@
| 25 | 25 | private final ProductRepository productRepository; |
| 26 | + |
|
| 27 | + @GetMapping("/products") |
|
| 28 | + public Page<Product> listProducts( |
|
| 29 | + @RequestParam(defaultValue = "0") int page, |
|
| 30 | + @RequestParam(defaultValue = "20") int pageSize) { |
|
| 31 | + |
|
| 32 | + int offset = page * pageSize; |
|
| 33 | + |
|
| 34 | + List<Product> products = productRepository.findAll() |
|
| 35 | + .stream() |
|
| 36 | + .skip(offset) |
|
| 37 | + .limit(pageSize) |
|
| 38 | + .toList(); |
|
| 39 | + |
|
| 40 | + long totalCount = productRepository.count(); |
|
| 41 | + int totalPages = (int) (totalCount / pageSize); |
|
| 42 | + |
|
| 43 | + return new Page<>(products, page, totalPages, totalCount); |
|
| 44 | + } |
|
| 26 | 45 | } |
Login Required: You must be registered to submit reviews and receive AI feedback.
Register or
login to start reviewing!
Your Review
Review Tips
- Look for security vulnerabilities (SQL injection, XSS, etc.)
- Check for null pointer exceptions and error handling
- Consider performance implications
- Evaluate code maintainability and readability
- Check for proper resource management
- Look for logic errors or edge cases