繁体   English   中英

Sequelize,一对多关联,包括

[英]Sequelize, one-to-many association, find with include

我很难理解为什么在尝试热切加载关联时find会引发错误。

相关型号:

标签:

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与标签未关联!” 找到的是:

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,如果我使用最新版本会有所帮助吗?

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

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

应该改为:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM