首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GraphQL SPQR获取服务器端的所有字段

GraphQL SPQR获取服务器端的所有字段
EN

Stack Overflow用户
提问于 2021-04-19 12:40:05
回答 1查看 158关注 0票数 0

我是Spring Boot的新手,我刚刚开始使用graphql-spqr for Spring Boot,因为它允许轻松地引导Java项目。

然而,据我所知,GraphQL基本上允许从数据库中提取选定的字段。根据示例,我已经看到,graphql-spqr库中的这种类型的选择发生在客户端。有没有一种方法可以同时在客户端和服务器端进行选择,以加快查询速度?

我已经研究了GraphQL的EntityGraph示例,但它们主要是为涉及连接的复杂quieres实现的。但是,对于findAll()、findById()等简单查询来说,并不存在任何东西。

我想在服务器端使用findAll(),只获取客户端请求的字段。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-19 16:39:37

评论中所说的是正确的: GraphQL (因此SPQR,因为它仅仅是一个连接模式的工具)对SQL、数据库、连接或其他任何东西一无所知。这是一个通信协议,剩下的就看你的了。至于您的情况,您必须将子选择注入到解析器中,并将其传递给SQL。在最简单的情况下,它可能看起来像这样(在伪代码中):

代码语言:javascript
复制
public List<Book> books(@GraphQLEnvironment Set<String> fields) {
    //pass the requested field names further
    return database.query("SELECT " + fields + " FROM book");
}

如果需要完整的上下文,您可以使用相同的注释注入ResolutionEnvironment

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67156041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档