使用Field属性续订多对多关联时出错

时间:2015-11-06 06:44:59

标签: mysql node.js sails.js sequelize.js

我正在使用sequelize v3.11.0并使用MySQL DB航行v0.11.0。

我有我的模特/ User.js

module.exports = {
  attributes: {
    firstName: {
        type: Sequelize.STRING,
        allowNull: false,
        field:'first_name'
    },
    lastName: {
        type: Sequelize.STRING,
        field:'last_name'
    },
    phone: {
        type: Sequelize.STRING
    }
  }
}

模型/ Category.js

module.exports = {
    attributes: {
    name: {
         type: Sequelize.STRING,
         allowNull:false,
         unique:true,
    },
       description: {
        type: Sequelize.STRING
    }
   }
}

模型/ UsersCategory.js

module.exports = {
    attributes: { },
    options: {
        tableName: 'user_categories'
    },
    associations: function() {
        User.belongsToMany(Category, {
            through: UsersCategory,
            foreignKey: {
                name:'userId',
                field:'user_id'
            }
        });
        Category.belongsToMany(User, {
            through: UsersCategory,
            foreignKey: {
                name:'categoryId',
                field:'category_id'
            }
        });
    }
};

但当我执行此代码时,在我的数据库user_categories表中,我将该属性设为:

  

category_id,userId

我不知道为什么userId在camelcase中。

当我在做的时候:

User.findAll({
    include: [
          {all:true}
        ]
   })

我收到错误:

  

“'on子句'中的ER_BAD_FIELD_ERROR:未知列'Categories.UsersCategory.user_id'”

     

但如果我在UserCategory模型中使用userId和CategoryId,那么它工作正常。

在多对多关联中,字段是否存在问题?

0 个答案:

没有答案