有没有办法使用Sequelize

时间:2016-11-29 12:35:29

标签: javascript node.js transactions sequelize.js

假设我们在NodeJs Sequelize中有这样的结构。

var User = sequelize.define('user', {/* ... */})
var Project = sequelize.define('project', {/* ... */})

Project.hasMany(User)

this part of video演示者提供的保存嵌入式对象的步骤中使用了两个步骤。在我们的例子中,它将类似于:

Project.create({
  ...
  }).then(function(project){
     User.create({
        ...
        projectId:project.id
     })
   })

但是这种方法会导致两次 db调用。

那么,是否可以使用Sequelize将嵌入对象(包含User的项目,例如User必须具有Project的id作为外键)保存到数据库中,或者使用Sequelize保存在一个事务中?

1 个答案:

答案 0 :(得分:2)

您应该能够通过将对象数组传递到与exp上使用的"as"值相同的键中来插入父子项。虽然使用情况为documentation is light,但您可以在source code here中看到它。

没有承诺(双关语)这是实际在单个SQL查询中运行,不确定Sequelize中的确切实现。您应该能够启用日志记录("include"中的logging: console.log)以查看其正在运行的内容。

Sequelize(options)