其他分享
首页 > 其他分享> > sequelize 关联聚合查询时起别名导致查询结果错误

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',
    }),
  },
],

....

})

标签:associations,Users,foreignKey,UserRoles,别名,查询,时起,model,sequelize
来源: https://www.cnblogs.com/zzsdream/p/16255822.html