sequelize.js - 用列名在引用表中使用现有关联 Id 急切地创建()
问题描述
有没有办法通过关联急切地按名称获取 id 而无需在关联中创建行?
假设我有关联
module.exports = (sequelize, DataTypes) => {
const ApiKey = sequelize.define(
"ApiKey",
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false,
},
PermissionId: {
type: DataTypes.INTEGER,
},
},
{
timestamps: true,
}
);
ApiKey.associate = function (models) {
ApiKey.belongsTo(models.Permission);
};
return ApiKey;
};
我希望能够在一个查询中得到这个:
models.ApiKey.create(
{
PermissionId: 'Automatically get ID by some select',
},
{
include: [{ model: models.Permission }],
}
);
我能够像这样得到它(我不想要):
models.ApiKey.create(
{
PermissionId: literal(
`(SELECT id FROM Permission WHERE name = 'guest')`
),,
},
);
解决方案
像这样的设置怎么样:
models.Permission.findOne({
where: {
name: 'guest'
}
}).then(function (permission) {
models.ApiKey.create(
{
PermissionId: permission.id
},
);
});
推荐阅读
- firebase - 未处理的异常:NoSuchMethodError:在 null 上调用了方法“[]”。尝试调用:[](“is_ordered”)。检查空字段 Firebase
- c# - C# 将值添加到 JSON 文件而不更改初始 JSON 格式
- visual-studio - 新的 Visual Studio 2019 项目中缺少依赖项
- docker - 通过 Kubernetes 上的 nginx 入口中的服务公开容器中的基本路径
- laravel - github composer [InvalidArgumentException] 找不到匹配版本的包 Tohidda/payping
- javascript - JSXGraph - 多边形动画缓慢而粗糙
- python - Python Pandas 在 CSV 中删除并记录错误行
- exchange-server - 识别对禁用用户的每个共享邮箱具有“完全访问权限”和“代表发送”访问权限的所有用户
- python - 使用 python 和 kotlin 进行 Fernet 加密/解密
- c# - DateTimeOffset.TryParse 在 Linux 中失败