所以我试图弄清楚为什么我的查询最终以:
{
"errors": [
{
"message": "Cannot return null for non-nullable field Message.sender.",
}
...
}
这是我的实体
@Entity()
export class Message extends BaseEntity {
@PrimaryGeneratedColumn("uuid")
id: string;
@Column("text")
content: string;
@CreateDateColumn()
created_at: string;
// @ts-ignore
@ManyToOne(type => User, user => user.messages)
sender: User;
}
我的解析器出现了:
allMessagesOfProject: async (_, { projectId }, __) => {
const project = await Project.findOne({
relations: ["messages"],
where: { id: projectId }
});
if (project) {
const messages = project.messages;
return messages.reverse();
}
return null;
},
我错过了什么吗?
答案 0 :(得分:0)
好吧,我刚刚发现TypeORM通过不允许访问子级(如果不够精确)来增加一层安全性,因此您必须使用eager
选项。
@ManyToOne(type => User, user => user.messages, {eager: true})
sender: User;
希望这会在以后对某人有所帮助。