You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sequelize关联Include模型查询GraphQL多层关联数据时Off字段为Null问题

问题原因

你在查询Company时,仅指定了关联Product,但未在Product的关联配置中嵌套加载Off数据。Sequelize不会自动递归加载所有层级的关联模型,必须显式声明每一层需要包含的关联对象。

解决方案

修改getCompany resolver中的findAll查询逻辑,在Product的include选项里嵌套添加Off模型的关联配置,保持as与模型定义的别名一致(即offs):

getCompany: async () => {
  const companies = await Company.findAll({
    include: [{
      model: Product,
      as: 'products',
      // 嵌套包含Product关联的Off数据
      include: [{
        model: Off,
        as: 'offs'
      }]
    }]
  });
  return companies;
},

修改后,Sequelize会在查询Company的同时,关联查询对应的Product,再嵌套查询每个Product关联的Off数据,GraphQL就能正确返回offs字段的内容。

另外可确认外键一致性:你定义的Product与Off的外键为ProductID(大写D),确保数据库表中的外键字段名和模型关联配置完全一致(你单独查询Product时能正常获取offs,说明这部分无问题,但统一大小写可避免潜在报错)。

内容的提问来源于stack exchange,提问作者Carlos Ivan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:35:21