NestJS中Sequelize bulkCreate带关联传事务报参数数量错误
问题原因
Sequelize 的bulkCreate方法仅支持两个入参:
- 第一个参数:待插入的记录数据数组
- 第二个参数:批量操作的配置对象
你错误地将事务实例作为独立的第二个参数传入,后续又传入了带include规则的配置对象,相当于一共传了3个参数,不符合方法签名要求,因此抛出参数数量不匹配的错误。
注意:transaction事务配置本身就是配置对象支持的属性之一,不需要单独作为参数传递,Sequelize 所有数据库操作方法的事务配置都遵循这个规则。
正确传参写法
将事务实例放到第二个配置对象内部,和include配置保持同级即可,修正后的代码如下:
await this.contactModel.bulkCreate(contactosList, { transaction: transactionHost, include: [ { model: Correo, as: 'correo', }, { model: Telefono, as: 'telefono' } ] })
使用该写法前请确认Contact模型与Correo、Telefono模型的关联关系已正确注册,否则关联表数据的批量插入逻辑无法正常执行。
内容的提问来源于stack exchange,提问作者Alberto lopez jimenez
相关产品推荐
相关产品推荐

