【问题标题】:graphql multiple associationsgraphql 多重关联
【发布时间】:2019-03-09 04:52:21
【问题描述】:

我在sequelize中有以下模型

用户

User.associate = models => {
    User.hasMany(models.Schedule, {
        onDelete: 'CASCADE',
        foreignKey: 'patient_id',
        sourceKey: 'id',
        as: 'patient'
    });

    User.hasMany(models.Schedule, {
        onDelete: 'CASCADE',
        foreignKey: 'professional_id',
        sourceKey: 'id',
        as: 'professional'
    });
};

时间表

Schedule.associate = models => {
    Schedule.belongsTo(models.User, {
        foreignKey: 'patient_id',
        targetKey: 'id',
        as: 'patient'
    });
};

Schedule.associate = models => {
    Schedule.belongsTo(models.User, {
        foreignKey: 'professional_id',
        targetKey: 'id',
        as: 'professional'
    });
};

以及graphql中的以下模式

用户

type User {
  id: ID!
  schedules1: [Schedule] @relation(name: "patient")
  schedules2: [Schedule] @relation(name: "professional") 
}

时间表

type Schedule {
  id: ID!
  date : Date
  patient: User! @relation(name: "patient")
  professional: User! @relation(name: "professional") 

}

但是当尝试用这样的时间表查询用户时

{
 users{
   id
   name
   schedules1{
     id
   }
  }
}

我得到了以下结果

{
 "data": {
   "users": [
    {
      "id": "1",
      "name": "Gregorio",
      "schedules1": null
   },
  ...

我的问题是,如何在 graphql 中对多个关联进行建模,我尝试了 @relation 注释但没有成功。

【问题讨论】:

    标签: relational-database sequelize.js graphql graphql-js


    【解决方案1】:

    noob 错误...我忘记将解析器添加到关系中。

    User: {
        patient: async(user, args, { models }) =>
            await models.Schedule.findAll({
                where: {
                    patient_id: user.id,
                },
            }),
        professional: async(user, args, { models }) =>
            await models.Schedule.findAll({
                where: {
                    professional_id: user.id,
                },
            })
    },
    

    【讨论】:

      猜你喜欢
      • 2019-06-27
      • 2020-04-25
      • 2012-03-27
      • 2019-09-23
      • 2017-11-04
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多