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

Tip: Be thorough! Consider security, performance, code quality, and best practices.
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
Analyzing Your Review
Our AI is carefully evaluating your code review against best practices