mysql - SequelizeJS 关系,同模型

标签 mysql node.js sequelize.js

我想创建一个如下所示的模型:

var category = db.define('category', {
    name: {
      type: Types.STRING,
    },
    position: {
      type: Types.INTEGER
    }
  }, {
    classMethods:{
      associate: function (models) {
        category.belongsTo(models.category);
        category.hasMany(models.category);
      }
    }
  });

它在我的数据库中工作,我在类别表中有“CategoryId”,但是当我想在我的查询中包含类别模型时它不起作用,我遇到了一个问题:

Error: ER_NONUNIQ_TABLE: Not unique table/alias: 'category'

我的查询:

this.context.category.findAll({include: [{model: this.context.category}]});

最佳答案

你只需要颠倒关系的顺序(belongsTo/hasMany)

var category = sequelize.define('category', {
    name: {
      type: Sequelize.STRING,
    },
    position: {
      type: Sequelize.INTEGER
    }
  }, {
    classMethods:{
      associate: function (c) {
        category.hasMany(c);
        category.belongsTo(c);
      }
    }
  });

关于mysql - SequelizeJS 关系,同模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28449645/

相关文章:

php - inner join large table with small table ,如何加速

mysql - Python-Sqlalchemy 二进制列类型 HEX() 和 UNHEX()

angularjs - 在 SSL 上运行 MEAN 堆栈

sequelize.js - sequelize 创建函数只保存几个字段

javascript - 基本的passport.js 注册功能失败,认为用户名已被占用

mysql - 序列化从创建和减量读取数据

php - 从mySQL结果集中查找rownum进行排名

mysql - 根据 FK 获取字段

javascript - 仅在提交的表单上添加一个 div

javascript - 在 Meteor 模板上使用 NPM 包