Задать вопрос
@Ille
Новичок

Объясните, для чего в методе следующие строки?

Дан метод :
// метод возвращает ДТО на основе статуса, приоритета, айди автора , page и size
 public TaskListResponse getByStatusAndPriorityAndAuthorId(String status, String priority, Long authorId, int page, int size) {

        userService.getById(authorId);  //для чего здесь эта строка?? Я бы понял, если б было: User id = 
 //userService.getById(authorId). Но именно что дает строка  userService.getById(authorId); ??? Ведь дальше этот юзер, 
// которого достают из базы, нигде не упоминается

        Status st = parseEnum(Status.class, status);
        Priority pr = parseEnum(Priority.class, priority);
        Pageable pageable = PageRequest.of(page, size);
        return taskMapper.taskListToTaskListResponse(taskRepository.findByStatusAndPriorityAndAuthorId(
        st, pr, authorId, pageable));
    }


И метод findByStatusAndPriorityAndAuthorId:
Page<Task> findByStatusAndPriorityAndAssigneeId(
Status status, Priority priority, Long assigneeId, Pageable pageable);


Вообще непонятен. каким образом он возвращает Page <Task>, если он вообще пустой???
  • Вопрос задан
  • 220 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@tuwkan
Page<Task> findByStatusAndPriorityAndAssigneeId это генерируется по названию метода, spring JPA например тут подробнее ссыль

userService.getById(authorId); судя по приведенному коду самого метода возможно это изощрённый метод проверить наличие юзера с таким id в базке, так как если такого нет, то вернется ошибка
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Здравствуйте!
Это называется named query. Когда вы расширяете интерфейс JpaRepository CrudRepository и др. то внутри нее есть названные методы, которые генерируют запросы к БД. İntellij IDEA может даже подсказать вам при создании named queries
На основе сигнатуры метода генерируются запросы к БД
Например, если в названии метода есть All (findAll), то по идее он может вернуть List Set Page и другие коллекции и контейнеры.
Для того, чтобы он мог вернуть Page нужно в аргументе передать Pageable
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы