Как найти пользователей одной роли
Есть сущность USER, в ней есть столбец ROLE, он может быть: ADMIN,TENANT,LANDLORD. Я через Postman делаю запрос на вывод всех TENANT, как мне выбрать из USER именно TENANT?
Верно ли я делаю, что сначала хочу пройтись по всем ролям и найти нужную.
Затем добавить тех, которых отобрал в новый лист.
Потом пройтись по этому листу и вывести того, которого запросил пользователь по ID (здесь нужна помощь).
У меня был такой вариант:
@GetMapping("/{id}")
@PreAuthorize("hasAuthority('user:read')")
public User landlordGet(@PathVariable(value = "id") Long id) {
List<User> sort = userRepository.findAll();
List<User> res = new ArrayList<>();
for (User us: sort) {
if (us.getRole().equals(Role.TENANT)){
res.add(us);
}
}
...
return user;
}
Ответы (1 шт):
Автор решения: AlekseiGaile
→ Ссылка
List<User> findByRole(@Param("role") String role);
или так, что надежнее
@Query(value = "select * from user where role = :role ", nativeQuery = true)
List<User> findByRole(@Param("role") String role);
Добавить запрос в репозитарий