“item_translation 与项目无关!”续集错误

Posted

技术标签:

【中文标题】“item_translation 与项目无关!”续集错误【英文标题】:"item_translation is not associated to item!" Sequelize error 【发布时间】:2018-11-06 20:05:27 【问题描述】:

我正在对两个应该关联的表运行一个简单的查询,但我不断收到以下消息:

item_translation 未与项目关联!

基本上item_translation 应该属于item。根据docs,我做的一切都是正确的。以下是模型:

ItemTranslation 模型:

module.exports = function () 
  return function (app) 
    /** @type Sequelize.Sequelize */
    const sequelize = app.get('sequelize')

    const ItemTranslation = sequelize.define('item_translation', 
      _id: 
        type: Sequelize.INTEGER,
        allowNull: false,
        primaryKey: true,
        autoIncrement: true
      ,
      sourceId: 
        type: Sequelize.STRING,
        allowNull: false,
        references: 
          model: 'item',
          key: '_id'
        ,
        onDelete: 'cascade',
        onUpdate: 'cascade'
      ,
      text: 
        type: Sequelize.STRING,
        allowNull: false
      
    , 
      freezeTableName: true
    )

    ItemTranslation.associate = function () 
      ItemTranslation.belongsTo(sequelize.models.item)
    
  

物品型号:

module.exports = function () 
  return function (app) 
    /** @type Sequelize.Sequelize */
    const sequelize = app.get('sequelize')

    sequelize.define('item', 
      _id: 
        type: Sequelize.INTEGER,
        allowNull: false,
        primaryKey: true,
        autoIncrement: true
      ,
      text: 
        type: Sequelize.TEXT,
        allowNull: true
      
    , 
      freezeTableName: true
    )
  

我错过了什么吗?

【问题讨论】:

【参考方案1】:

我不确定,但试试这个。我总是明确定义外键。像这样的东西。

ItemTranslation.belongsTo(sequelize.models.item,foreignKey:'sourceId')



Item.associate = function () 
      Item.hasMany(sequelize.models.ItemTranslation,foreignKey:'sourceId')
    

【讨论】:

恐怕还是不行。得到同样的错误和一切。我也尝试将targetId 添加到第二个参数对象,但仍然没有。 能否上传完整的错误信息截图。

以上是关于“item_translation 与项目无关!”续集错误的主要内容,如果未能解决你的问题,请参考以下文章