我对sequelize V6 和一个非常基本的一对多关联示例有疑问。
this.coupleTable.hasMany(this.userTable);
this.userTable.belongsTo(this.coupleTable);
const user = await db.userTable.findByPk(userId);
const couple = await user?.getCouple();
--> 我无法通过 eager 获取(即一个请求)检索一个用户及其夫妇。
const userWithCouple = await db.userTable.findByPk(userId, { include: db.coupleTable });
生成的sql请求使用了错误的JOIN子句,与我的预期完全相反。
而不是:
左外连接 user. CoupleId = Couple.id
我们有:
左外连接 user.id = Couple. CoupleId
但是,我的示例似乎非常适合文档:doc-eagerLoading-V6
我在这里做错了什么?
谢谢您的帮助。
很长时间才发现问题只出现在玩笑测试中。
负责人在这里:
jest.resetModules();
-> 如果您遇到类似的问题,并且有 sequelize with jest 的奇怪行为,只需不要重置模块,或者找到一种替代方法来仅重置您想要的内容。
我不知道。这可能是一个错误,也可能不是。也许读过这篇文章的人会有答案。
在我看来,这是一个错误。因为一切都工作正常(急切获取一个 -> 许多,具有 hasMany、关联、BelongsToGetAssociation 等),但不是急切获取多个 -> 一个 (belongsTo)。