【发布时间】:2021-07-13 07:10:17
【问题描述】:
我是 Spring Boot 新手,我刚开始使用 graphql-spqr 进行 Spring Boot,因为它可以轻松引导 Java 项目。
但是,据我了解,GraphQL 基本上允许从数据库中获取选定的字段。根据示例,我已经看到,graphql-spqr 库中的这种选择发生在客户端。有没有办法在客户端和服务器端都进行选择以加快查询速度?
我研究了 GraphQL 的 EntityGraph 示例,但它们主要是为涉及 JOIN 的复杂查询实现的。但是,对于 findAll()、findById() 等简单查询,不存在任何内容。
我想使用findAll(),服务器只获取客户端请求的字段。我该怎么做?
【问题讨论】:
-
这个实现完全由你自己决定,graphql 只是前端和后端之间的通信协议,将其视为一种 REST 端点,它可以让你制作不同类型的端点,但是每个端点如何更新由您决定
-
继续讨论解决方案,您可能必须将列向下传递到 sql 级别,并且可能必须执行:在您的实现中从表等中选择 ,因为我不认为从代码到数据库层,有一个库可以为您做到这一点。你可以看看 Hasura,但我不确定它是否符合你的要求 :)
-
明白。有没有办法根据 GraphQL 客户端请求的字段为 SQL 生成动态查询?
-
我觉得一个叫做 hasura 的工具可能会有所帮助,但我只看过有关它的文章,并且自己从未尝试过......你可以看看它
标签: spring-boot graphql graphql-java graphql-spqr