Фильтрация данных в хранилище - PullRequest
0 голосов
/ 23 марта 2020

В моем проекте у меня есть контроллер для объекта 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, но я все еще должен обеспечить нумерацию страниц.

Я ищу решение, которое можно масштабировать и для более сложных запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...