我已经使用官方文档使用Java创建了我的第一个Play Framework网站。它只有一个页面,我在其中显示可以过滤或修改的项目列表。
我有一个带有方法的Controller类:
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());
}
此方法对数据库进行查询(通过feedRepository),然后使用视图feedpostslist显示结果。
一切都很好,但是现在我需要从数据库中获取其他数据以在同一网页中使用(这样可以进行多个查询)。如何在Play框架中执行此操作?我不知道什么是最好的方法。
我应该(通过feedRepository)在前面显示的方法内执行多个数据库请求,然后将所有这些信息传递给我的视图吗?我不想弄得一团糟,甚至不想沉重的东西。
如果第二个查询不依赖于第一个查询,则可以使用CombineAsync并行运行它们。这是一个很好的例子,说明如何做到这一点:
如果第二个查询依赖于第一个查询,那么您只能等待第一个查询完成并运行第二个查询。