Sequelize.js 属性未与模型关联,如果关系使用;作为「;
数据库:mysql 5.5 续集版本:3.30.4 用户角色模型Sequelize.js 属性未与模型关联,如果关系使用;作为「;,sequelize.js,Sequelize.js,数据库:mysql 5.5 续集版本:3.30.4 用户角色模型 sequelize.define('userRole', { uid: { type: DataTypes.UUID, primaryKey: true }, name: { type: DataTypes.STRING, unique: true } }, { freezeTableName: false, tab
sequelize.define('userRole', {
uid: {
type: DataTypes.UUID,
primaryKey: true
},
name: {
type: DataTypes.STRING,
unique: true
}
},
{
freezeTableName: false,
tableName: 'user_roles'
}
)
用户模型
sequelize.define('user', {
uid: {
type: DataTypes.UUID,
primaryKey: true
},
login: {
type: DataTypes.STRING,
unique: true,
allowNull: false
}
},
{
freezeTableName: false,
tableName: 'users'
}
)
和关系
Users.belongsTo(UserRoles, { as: 'role' })
正在尝试插入新用户
Users.create({
uid: uuid(),
login: 'login',
password: 'password',
role: {
uid: uuid(),
name: 'admin'
}
}, {
include: [Types.UserRoles]
})
错误:userRole未与用户关联
试图使用
role: {
uid: uuid(),
name: 'admin'
}
或
但没有区别
如果我改变关系到
Users.belongsTo(UserRoles)
一切都很好当使用
将关系定义为选项时,您需要记住在执行查询时包含别名,以便急切地加载这些关系,因此您需要更改create()
并在include
中添加as
选项:
Users.create({
uid:uuid(),
登录:'登录',
密码:“password”,
角色:{
uid:uuid(),
名称:'管理员'
}
}, {
包括:[{model:Types.UserRoles,as:'role'}]
});
在将关系定义为as
选项时,您需要记住在执行查询时包含别名,以便快速加载这些关系,因此您需要更改创建()
,并在包含
中添加as
选项:
Users.create({
uid:uuid(),
登录:'登录',
密码:“password”,
角色:{
uid:uuid(),
名称:'管理员'
}
}, {
包括:[{model:Types.UserRoles,as:'role'}]
});
如果在代码中使用sequelize.sync()
,则表用户将添加列UserRolesId
如果不使用sequelize.sync()
,则需要将字段“roleId”添加到表“users”中,然后描述如下关系
Users.belongsTo(用户角色{
外键:“roleId”,
约束:false,//是可选的
as:‘邮政’
});
阅读额外示例-如果您在代码中使用sequelize.sync()
,则用户将添加列UserRolesId
如果不使用sequelize.sync()
,则需要将字段“roleId”添加到表“users”中,然后描述如下关系
Users.belongsTo(用户角色{
外键:“roleId”,
约束:false,//是可选的
as:‘邮政’
});
阅读额外示例-谢谢,但我的问题与此无关谢谢,但我的问题与此无关
Users.belongsTo(UserRoles)