You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot GraphQL如何使用输入数组?已解决

Spring Boot GraphQL Mutation输入数组使用问题

问题说明

我是Spring Boot和GraphQL的新手,在网上未找到相关答案,故在此提问:GraphQL mutation中应如何使用输入数组?以下是我的尝试:

GraphQL Schema定义

// schema.graphqls
type Mutation{
    test(input:TestInput):String
}

input TestInput{
    temp:[Int]
}

Java Controller代码

// @Controller TestInputController.java
@MutationMapping
public String test(@Argument TestInput input){
    System.out.println("hello");
    System.out.println(input);
    return "test";
}

record TestInput(Integer[] temp){}

执行的Mutation请求

// mutation in graphiql
mutation{
  test(input:{
    temp:[5]
    })   
}

报错信息

Error : java.lang.IllegalStateException: Cannot access properties on null bean instance 'input'

解决方案

将TestInput记录中的数组类型Integer[]替换为List<Integer>,修改后的Java代码如下:

// @Controller TestInputController.java
@MutationMapping
public String test(@Argument TestInput input){
    System.out.println("hello");
    System.out.println(input);
    return "test";
}

record TestInput(List<Integer> temp){}

Spring GraphQL对数组类型的输入参数绑定支持不佳,改用List类型后,框架能正确解析并实例化输入对象,避免出现null实例的异常。


内容的提问来源于stack exchange,提问作者Louis Daisomont

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:45:35