我只能在Appync上使用GraphQL中的主键进行查询?
这个问题使我感到困惑 我尝试在graphql查询中使用非主键查询RDS表 下面是我在appsync中的两个查询的示例我只能在Appync上使用GraphQL中的主键进行查询?,graphql,aws-amplify,aws-appsync,Graphql,Aws Amplify,Aws Appsync,这个问题使我感到困惑 我尝试在graphql查询中使用非主键查询RDS表 下面是我在appsync中的两个查询的示例 query getloc{ getLocationByCounty(County: "County"){ LocationsID State County } } 这里的第二个查询起作用,并准确返回具有该LocationID的县。 第一个返回错误消息:“无法为不可为null的类型返回null:“父“位置”中的Int”(/getLocationBy
query getloc{
getLocationByCounty(County: "County"){
LocationsID
State
County
}
}
这里的第二个查询起作用,并准确返回具有该LocationID的县。
第一个返回错误消息:“无法为不可为null的类型返回null:“父“位置”中的Int”(/getLocationByCounty/LocationsID)”
如果我更改位置的模式并使LocationsID不可为null,则错误会消失,但它不会消失
返回null
{
"data": {
"getLocationByCounty": {
"State": null
}
}
}
getLocationsByCounty的请求解析程序是:
"version": "2018-05-29",
"statements": ["select * from Locations where County = '$ctx.args.County'"]
以下是响应解析器:
## Raise a GraphQL field error in case of a datasource invocation error
#if($ctx.error)
$utils.error($ctx.error.message, $ctx.error.type)
#end
$utils.toJson($utils.rds.toJsonObject($ctx.result)[0])
这是graphQL中不允许的还是我做错了
值得注意的是,如果我只是执行以下查询:
select * from Locations where County = 'County'
在mySQL中,它完全按照预期工作。您需要响应解析器吗?可能类似于
$util.toJson($ctx.result)
?为什么工作响应返回状态:null。。。是否存在未设置状态的重影记录?不,在数据库方面,没有重影记录。在mysql中,查询返回的正是我所期望的结果。分解器也在那里。我将把它包括在我的原始帖子中。如果将解析器更改为$util.toJson($ctx.result)
,会发生什么?甚至只是$ctx.result
select * from Locations where County = 'County'