GraphQL Spring Boot 中使用 @BatchMapping 的参数

问题描述 投票:0回答:1

在带有 BatchMapping 的 Java Spring Boot 中,我想知道如何访问参数。以下是该架构的部分内容:

type Query {
    user(username: String!): User
}


type User {
    username: String!
    posts: [Post!]!
}

type Post {
    upvotes: [User!]!
    upvoted(username: String!): Boolean
}

解析器看起来像这样:

@SchemaMapping
public Boolean upvoted(@Argument String username) {
        //...
}

但是如果我想因为n + 1问题而提高效率,我会这样做:

@BatchMapping
public Map<Post, Boolean> upvoted(List<Post> posts) {
      // ...
}

我不确定如何访问参数“用户名”来查询数据库,例如在这样的查询中:

{
 user(username: "1") {
    posts {
      upvoted(username: "2")
    }
  }
}
java spring-boot graphql
1个回答
0
投票

您可能会在此 GitHub 问题下找到一些答案(和代码): https://github.com/spring-projects/spring-graphql/issues/417

© www.soinside.com 2019 - 2024. All rights reserved.