我有两个模型赋值和区域,每个都定义在单独的文件中,如下所示:
./models
--Area.js
--Assignment.js
--index.js
Area.js:
const Area = sequelize.define('area',{ id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true }, name: { type: Sequelize.STRING, } }, { timestamps: false }); Area.hasMany(Assignment, { foreignKey:'areaId'});
assignment.js:
const Assignment = sequelize.define('assignment',{ id: { type: Sequelize.INTEGER, autoIncrement: true, primaryKey: true, } }, { timestamps: false }); Assignment.associate = models => { models.Assignment.belongsTo(models.Area, { foreignKey: 'areaId', onDelete: "CASCADE", }); };
当我试图用包含属性的区域信息(join)找到一些赋值时,我得到了一个错误,说:区域不关联到赋值!
Assignment.findAll({ include: [{ model: Area }] }).then((assignments) => { res.status(200).json(assignments) }).catch((e) => { res.status(500).json({ error: e.message }) })
提前谢谢你。
在我看来,您似乎缺少了附带的associate方法:
Area.associate = models => {
models.Area.hasMany(Assignment, { foreignKey:'areaId'})
};
null
Area.hasMany(Assignment, { foreignKey:'areaId'});
所以列areaId应该在
models.Assignment.belongsTo(models.Area, {
foreignKey: 'areaId',
onDelete: "CASCADE",
});
null
总之,您错过了
一、本功能说明 可以自动批量的将内容里面的关键词语加上超链接 二、子功能导航 1.添加连接 2.管理连接 三、功能详解 1.添加规则 1).如何进入本功能 导航栏 选择扩展 -> 菜单栏 选择关联连接 -> 添加关联连接 2).界面解释 点击后弹出如下界面 界面详述 1). 关联连接名称: 您可以需要添加连接的关键字 2). 关联连接网址: 该关键字对应的网址 2.管理连接 1).如何进入本功能
问题内容: 有什么办法可以使两个表之间没有直接关系但又在hibernate中有两个公共字段呢? 我有两个表,称为boiler_plates和profile,它们之间没有直接关系,但是有一个名为contract_id的公共字段。 我写了查询“来自bp.bt_contracts = p.contract_id上的Boiler_Plates bp内部连接配置文件p”,但它不断抛出错误。“意外令牌:在第1
问题内容: 我有具有相同结构的不同表,我想通过它们的一列将它们连接起来。 问题在于他们不共享该列中的信息。 结果表: (在单列中) 到目前为止,我已经尝试过: 我知道我的查询是错误的,因为我要调用更多我想要的列,但是我不确定如何将所有列合并到一个列中。我该怎么做? 问题答案: 你有没有尝试过? 如果您不想排除重复的值,则可能要使用。 要限制结果集,您可以执行以下操作:
问题内容: 谁能告诉我如何编写查询并如上所述获取结果,谢谢!我试过加入,左右加入。一切都没有结果。 问题答案: 您可以在这两个表之间写左外部联接最好的理解方法是检查下图 查询您的要求 阅读有关 代码项目的 原始文章将对您有很大帮助:SQL Joins的可视表示 。 在以下位置找到原始版本:MySQL中的JOIN和OUTER JOIN之间的区别 。
问题内容: 我有两个表,如下所示: 我想列出参加活动17的所有人(包括学生和教师)的名字。无论如何,我可以获得以下结果: 无需创建新表(仅使用表达式或派生关系的嵌套)? 在actid上加入JOIN会得到如下结果: 我想我需要一种串联形式? 问题答案: 您可能(或可能不需要)对ID不唯一的内容进行处理,例如
问题内容: 有简单的解决方案,可通过串联两个或java 。由于是经常使用的。是否有任何简单的方法来连接两个? 这是我的想法: 它可以工作,但实际上可以转换为,然后再次转换回。 问题答案: 您可以使用协力让这件事没有任何自动装箱拆箱或完成。这是它的外观。 请注意,返回,然后将其与另一个串联,然后再收集到数组中。 这是输出。 [1、34、3、1、5]