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

Sequelize多对多关联嵌套查询字段名截断问题咨询

Sequelize多对多关联嵌套查询字段名截断问题

问题现象

查询包含多对多(M:N)关联的模型并嵌套多层include时,对象的字段键名会被截断为固定长度。例如:

  • UserGroup与BitrixResponsible为M:N关联(别名bitrix_responsible)
  • BitrixPortal模型包含字段webhook_inbound_url
  • 预期访问路径:record -> bitrix_responsible -> [0] -> bitrix_account -> bitrix_portal -> webhook_inbound_url
  • 实际返回的键名被截断为webhook_inboun,其他长字段也存在相同截断情况

环境与配置

使用版本

  • Node v18.17.1
  • sequelize ^6.33.0
  • sequelize-hierarchy-fork ^1.0.0

查询参数

{
  include: [
    {model: models.BitrixResponsible.scope('with_relations_deep'), as: 'bitrix_responsible'}
  ]
}

Scope配置

BitrixAccount.addScope('with_relations', {
  include: [
    { model: BitrixPortal.scope('self_only'), as: 'bitrix_portal'},
  ],
})
BitrixResponsible.addScope('with_relations_deep', {
  include: [
    { model: BitrixAccount.scope('with_relations'), as: 'bitrix_account'},
    { model: UserPosition, as: 'position'},
  ],
})

BitrixPortal模型定义

class BitrixPortal extends Model {}
BitrixPortal.init(
  {
    id: { type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4, allowNull: false, primaryKey: true },
    account_id: { type: DataTypes.UUID, allowNull: false },
    default_responsible_id: { type: DataTypes.UUID, allowNull: true },
    // other fields
    webhook_inbound_url: { type: DataTypes.STRING, allowNull: true },
    webhook_outbound_token: { type: DataTypes.STRING, allowNull: true },
    // other fields
  },
  {
    ...default_model_options(
      'bitrix_portals',
      'bitrix',
      'BitrixPortal',
      true, true),
    defaultScope: {
      attributes: {
        exclude: ['webhook_inbound_url', 'webhook_outbound_token']
      },
      include: [],
    },
    scopes: {
      ...default_model_scopes(),
    },
  }
)

排查过程

  • 将scope替换为直接编写include配置,问题依旧,排除scope本身的影响
  • 单独查询BitrixResponsible并携带with_relations_deep scope时,字段名显示正常;仅通过UserGroup的M:N关联嵌套查询时才会出现截断

临时方案

先查询不带嵌套include的BitrixResponsible记录,收集ID后单独查询携带with_relations_deep scope的记录,此时字段名正常。

疑问

该现象属于Sequelize的Bug,还是遗漏了某些配置项,或是需要升级版本解决?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:33:22