Sequelize,一对多关联,找到包括

时间:2014-12-27 04:19:45

标签: node.js sequelize.js model-associations

我无法理解为什么在尝试急切加载关联时发现错误。

相关型号:

标签:

module.exports = function(sequelize, DataTypes) {
  var Tag = sequelize.define('Tag',
  {
    tag_name: {type: DataTypes.STRING(30), allowNull: false}
  },  
  {
    associate: function(models) {
      Tag.hasMany(models.Event, {foreignKeyConstraint: true});
      Tag.hasMany(models.Retailer, {foreignKeyConstraint: true});
  }   
}); 
  return Tag;
};

EventTag:

module.exports = function(sequelize, DataTypes) {
  var EventTag = sequelize.define('EventTag',
  {
    cor_name: DataTypes.STRING
  },
  {
    associate: function(models) {
      EventTag.belongsTo(models.Tag, {foreignKeyConstraint: true});
      EventTag.belongsTo(models.Event, {foreignKeyConstraint: true});

    }
  });
  return EventTag;
};

当我找到一个发现时,我收到一条错误,说“" EventTag没有与Tag相关联!" 这是查找:

db.Tag.find({
  where: ['id = ' + req.param('activity')],
  include: [
    {model: db.EventTag,
     include: [
       {model: db.Event,
        where: [where]}]
    }], 
  attributes: [
    'id',
    'tag_name']})

我在这里缺少什么?我甚至尝试了一个findAll,但同样的错误。 我正在使用sequelize 1.7.10,如果我使用最新版本会有帮助吗?

1 个答案:

答案 0 :(得分:1)

我发现了这个问题。 我忽略了:

Tag.hasMany(models.Event, {foreignKeyConstraint: true});

应该是:

Tag.hasMany(models.EventTag, {foreignKeyConstraint: true});
相关问题