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