To achieve GROUP BY with pagination in Spring Data JPA, you need to use the Criteria API within a custom repository implementation. You'll construct a query with groupBy() and having() to filter by department, and then apply pagination using setFirstResult() and setMaxResults(). A separate count query is needed for the total number of groups for pagination metadata. The result will be a Page<Employee>, where each Employee represents one department group