代码之家  ›  专栏  ›  技术社区  ›  theJuls

“项_翻译与项不关联!”续集错误

  •  0
  • theJuls  · 技术社区  · 7 年前

    我正在两个应该关联的表上运行一个简单的查询,但我一直得到以下消息:

    项目翻译与项目无关!

    大体上 item_translation 应该属于 item 根据 docs ,我每件事都做对了。以下是模型:

    项目翻译模式:

    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 回复  |  直到 7 年前
        1
  •  0
  •   margherita pizza    7 年前

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

    ItemTranslation.belongsTo(sequelize.models.item,{foreignKey:'sourceId'})
    
    
    
    Item.associate = function () {
          Item.hasMany(sequelize.models.ItemTranslation,{foreignKey:'sourceId'})
        }
    
    推荐文章