要解决AWS Amplify GraphQL查询一对多连接时返回空列表的问题,可以按照以下步骤进行操作:
type User @model {
id: ID!
name: String!
posts: [Post] @connection(keyName: "byUser", fields: ["id"])
}
type Post @model @key(name: "byUser", fields: ["userID", "createdAt"]) {
id: ID!
title: String!
content: String!
userID: ID!
createdAt: String!
user: User @connection(fields: ["userID"])
}
const createPost = async () => {
const post = {
title: "New Post",
content: "This is a new post.",
userID: "USER_ID_HERE"
};
await API.graphql(graphqlOperation(createPostMutation, { input: post }));
console.log("Post created successfully");
};
const getUser = async () => {
const user = await API.graphql(graphqlOperation(getUserQuery, { id: "USER_ID_HERE" }));
console.log("User:", user.data.getUser);
console.log("User's Posts:", user.data.getUser.posts.items);
};
这样,当查询用户时,应该能够正确获取到用户的帖子列表。如果返回的仍然是空列表,可能是因为数据中没有与用户关联的帖子或者模型定义有误,需要进一步检查数据和模型定义。