Play Framework - Как создать веб-страницу с несколькими MySQL запросами - PullRequest
1 голос
/ 06 мая 2020

Я создал свой первый веб-сайт Play Framework с Java, используя официальную документацию. У него есть одна страница, на которой я отображаю список элементов, которые можно фильтровать или изменять.

У меня есть класс контроллера с методом:

   public CompletionStage<Result> feedpostslist(String domain, String date, String state, int page, int resnum, String search) {
        return feedRepository.getArticleList(domain, date, state, page, resnum, search).thenApplyAsync(articles -> {
            FeedArticle[] list = new FeedArticle[articles.size()];
            articles.toArray(list);
            return ok(views.html.feedpostslist.render(list));
        }, ec.current());
    }

Этот метод выполняет запрос к DB (через feedRepository), а затем отобразить результат с помощью списка каналов просмотра.

Все в порядке, но теперь мне нужно получить другие данные из БД, которые будут использоваться на той же веб-странице (то есть несколько запросов). Как это сделать в Play Framework? Я не понимаю, как лучше всего это сделать.

Следует ли мне выполнять несколько запросов к БД внутри метода, показанного ранее (через feedRepository), а затем передавать всю эту информацию в мое представление? Я не хочу делать беспорядок или даже делать что-то слишком тяжелое.

1 Ответ

2 голосов
/ 06 мая 2020

Если второй запрос не зависит от первого, вы можете запустить его параллельно, используяcommonaAsyn c. Это хороший пример того, как это сделать:

https://github.com/playframework/play-samples/blob/2.8.x/play-java-ebean-example/app/controllers/HomeController.java#L85

Если второй запрос зависит от результатов первого, вы ничего не можете сделать, кроме как дождитесь завершения первого и запустите вторую.

...