【问题标题】:Cannot return null for non-nullable field Message.sender with GraphQl and TypeORM无法为具有 GraphQl 和 TypeORM 的不可空字段 Message.sender 返回 null
【发布时间】:2019-10-04 09:34:28
【问题描述】:

所以我想弄清楚为什么我的 Query 会以:

{
  "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;
},

我错过了什么吗?

【问题讨论】:

    标签: reactjs graphql apollo typeorm


    【解决方案1】:

    好的,我刚刚发现 TypeORM 增加了一层安全性,如果不精确则不允许访问子级,因此您必须使用 eager 选项。

    @ManyToOne(type => User, user => user.messages, {eager: true})
    sender: User;
    

    希望这对以后的人有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-10-29
      • 2021-11-27
      • 2021-10-24
      • 2022-01-02
      • 2021-03-18
      • 2019-07-08
      • 2019-10-25
      • 2018-04-10
      • 2019-05-28
      相关资源
      最近更新 更多