【问题标题】:Sequelize not creating Junction tables for many-to-many relationshipsSequelize 不为多对多关系创建连接表
【发布时间】:2014-09-12 10:25:44
【问题描述】:

我没有看到为下面的代码创建联结表(对于 UserEvents as:Attendees)。当我尝试使用 event.setAttendee([user]) 将“参加者”添加到事件中时,它会在用户表上设置 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"});
}

【问题讨论】:

    标签: node.js sequelize.js


    【解决方案1】:

    当使用别名 ({ as: 'Attendees'}) 时,您必须通过指定 through 来告诉 sequelize 您想要一个连接表,它可以是字符串或模型:

    Event.hasMany(User, { as: 'Attendees', through: 'user_events' });
    User.hasMany(Event, { , through: 'user_events' });
    

    【讨论】:

    • 非常感谢,文档在这方面失败了,因为在多对多中他们使用了这个例子并且做错了......谢谢!
    • 我们应该解决这个问题!你能指出我具体的页面/行吗?或者在github.com/sequelize/doc 上打开一个问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    • 2017-05-18
    • 2021-05-03
    • 2022-12-15
    • 2019-08-24
    • 2020-10-31
    • 1970-01-01
    相关资源
    最近更新 更多