我没有看到为我的代码创建了联结表(对于UserEvents as:Attendees)。当我尝试使用event.setAttendees([user])将'Attendee'添加到事件时,它会在用户表上设置EventId(从而使其成为一对多关系)
在同步记录期间,不会创建具有“userevents”相关名称的表
var User = db.import(__dirname + '/user');
var Event = db.import(__dirname + '/event');
Event.hasMany(User, { as: 'Attendees'});
User.hasMany(Event);
db.sync({logging: console.log}).success(function() {
logger.info('DB Initialization successful!');
createDefaultData()
}).error(function(err) {
logger.error('DB Initialization failed!', err);
});
var createDefaultData = function() {
User.create({email:"test@test.com", firstName: "tolga", lastName: "ekmen", password: "qwer", location: "13424"});
}
答案 0 :(得分:2)
使用别名({ as: 'Attendees'}
)时,您必须通过指定through
(可以是字符串或模型)告诉sequelize您想要连接表:
Event.hasMany(User, { as: 'Attendees', through: 'user_events' });
User.hasMany(Event, { , through: 'user_events' });