【发布时间】:2019-04-18 21:06:52
【问题描述】:
我有两张桌子;用户权限和权限项。 userPermissions 有一个 permissionItemId 作为外键,定义为
CONSTRAINT `fk_userPermissions_permissionItemId`
FOREIGN KEY (`permissionItemId`)
REFERENCES `mydb`.`permissionItems` (`permissionItemId`)
他们的 Sequelize 定义是
const PermissionItem = db.define('permissionItems', {
permissionItemId: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true
}
});
const UserPermission = db.define('userPermissions', {
userPermissionsId: {
type: Sequelize.INTEGER,
autoIncrement: true,
primaryKey: true
},
permissionItemId: {
type: Sequelize.INTEGER,
references: 'permissionItems',
referencesKey: 'permissionItemId'
}
});
UserPermission.hasOne(PermissionItem);
然后我尝试将这两个加入并查看结果
UserPermission.findAll({
include: [{
model: PermissionItem
}]
}).then(userPermission => {
console.log('userPermission', userPermission);
});
我的期望是获取所有 UserPermissions 的列表,并在 permissionItemId 上获得外部左连接 PermissionItem。相反,我收到以下错误
未处理的拒绝 SequelizeDatabaseError:未知列 '字段列表'中的'permissionItem.userPermissionUserPermissionsId'
我是否错误地构造了查询?还是 Sequelize 定义?
我尝试将它们翻转过来,包括反向,并向后应用键,在我能想到的每一种组合中,都无济于事
【问题讨论】:
标签: sequelize.js