所以我有这段代码:
//defining partner
var Partner = sequelize.define('Partner', {
order: Sequelize.INTEGER,
image: Sequelize.STRING,
}, {
tableName: 'partners',
});
//creating partner instance
var partner=Partner.build();
partner.save().success(function(newpartner){
console.log(newpartner.id);
});
执行此代码时,会将2个伙伴实例插入数据库。当我访问id
的{{1}}属性时,会推送第二个。
以下是来自控制台的日志:
partner
我需要获取合作伙伴的ID并在将其持久保存到数据库后将其发送给客户端。我该怎么做呢?
现在我只是在不调用Executing (default): INSERT INTO `partners` (`updatedAt`,`createdAt`) VALUES ('2014-08-16 13:13:26','2014-08-16 13:13:26');
Executing (default): INSERT INTO `partners` (`id`,`createdAt`,`updatedAt`) VALUES (DEFAULT,'2014-08-16 13:13:26','2014-08-16 13:13:26');
的情况下访问id
属性,因为它无论如何都会保存对象。然而,这没有记录。有没有正确的方法呢?
答案 0 :(得分:0)
我成功地解决了这个问题。
我的错误来自于阅读文档不够彻底。显然,设置关联对象会将实体推送到数据库(例如,与Doctrine不同)。 所以我的实体在执行下面的代码时保存了(不包含在问题中):
Partner.setManager(manager);
其中Manager
是与合作伙伴的oneToMany关系中的实体。
所以解决方法是删除save()调用并使用success
setManager()
回调