В моем проекте у меня есть контроллер для объекта User
:
@RestController
@RequestMapping("/api/users")
public class UserController {
private UserRepository userRepository;
private ActiveUsers activeUsers;
@Autowired
public UserController(UserService userRepository, ActiveUsers activeUsers) {
this.userRepository = userRepository;
this.activeUsers= activeUsers;
}
@GetMapping
public List<User> getAll(Pageable pageable) {
return userRepository.findAll(pageable);
}
...
}
, где ActiveUsers
- класс с Set<String> users
- полем с набором логинов активных пользователей приложения.
Есть ли способ отфильтровать, что хранилище в методе findAll(Pageable pageable)
ищет только пользователей в моем activeUsers
, а не всех пользователей в базе данных? Я не могу изменить User
модель, чтобы добавить флаг active
, но я все еще должен обеспечить нумерацию страниц.
Я ищу решение, которое можно масштабировать и для более сложных запросов.