sequelize 关联聚合查询时起别名导致查询结果错误

include: [
  {
    association: model.Users.hasOne(model.Roles, {
      foreignKey: 'id',
      as: 'UserRoles',
    }),
  },
]

 

第一次执行正常,第二次会报错:SequelizeAssociationError: You have used the alias UserRoles in two separate associations. Aliased associations must have unique aliases.

 

解决办法:
目前看了一下sequelize文档,没有发现有别名存在处理的接口,所以目前处理方式在前面加一个判断,如果别名存在就删除即可

 

if(model.Users.associations.UserRoles){

  delete model.Users.associations.UserRoles

}

UserRoles是自定义的别名

 

 

稍完整代码说明:

...

if(model.Users.associations.UserRoles){

  delete model.Users.associations.UserRoles

}

await model.Property.PropertyStorage.findAndCountAll({

include: [
  {
    association: model.Users.hasOne(model.Roles, {
      foreignKey: 'id',
      as: 'UserRoles',
    }),
  },
],

....

})

posted on 2022-05-10 22:50  zhangzongshan  阅读(577)  评论(0编辑  收藏  举报

导航