【问题标题】:joining of more then two table is not working in sequalize加入两个以上的表在 sequelize 中不起作用
【发布时间】:2021-03-24 09:09:45
【问题描述】:

我有两个模型用户,CandidateExperience 所以当我加入两个表时它不起作用。

我必须在用户模型中添加关联

module.exports = (sequelize, DataTypes) => {
  const Users = sequelize.define('Users', {
    name: {type: DataTypes.STRING},
    lName: {type: DataTypes.STRING},
    email: {type: DataTypes.STRING},
    }, {
    hooks: {},
    underscored: true
  });
  Users.associate = function (models) {
    Users.hasMany(models.CandidateDetails, {
      as: 'CandidateDetails',foreignKey: 'userId',constraints: false
    })
    Users.hasMany(models.CandidateExperience, {
      as: 'CandidateExperience',foreignKey: 'userId',constraints: false
    })
  };
  return Users;
};

候选体验模型

module.exports = (sequelize, DataTypes) => {
  const CandidateExperience = sequelize.define('CandidateExperience', {
    candidate_exp_id: {type: DataTypes.UUID,primaryKey: true},
    companyName: { type: DataTypes.STRING},
    designation: {type: DataTypes.STRING}
  }, {
    underscored: true
  });
  CandidateExperience.associate = function (models) {
    CandidateExperience.belongsTo(models.Users, {
      as: 'User',foreignKey: 'userId',constraints: false})
  };
  return CandidateExperience;
};

但是如果我使用这个查询它会给我错误

return models.Users.findAll({
            where: {userType:'engineer'},
            include: [
                { model: models.CandidateExperience, as: "experienceDetail" ,
                 required:       false},
                ]
          });

【问题讨论】:

    标签: node.js join sequelize.js


    【解决方案1】:

    您正在使用别名“CandidateExperience”将用户与 CandidateExprience 相关联 但是你用'exprienceDetail'打电话给User.findAll()

    试试这个

    Users.hasMany(models.CandidateExperience, {
          as: 'experienceDetail',foreignKey: 'userId',constraints: false
    })
    
    Users.findAll({
                where: {userType:'engineer'},
                include: [
                  { 
                     model: models.CandidateExperience, 
                     as: "CandidateExperience", 
                     required: false
                  }
                ]
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-16
      • 1970-01-01
      • 2017-04-05
      • 1970-01-01
      • 2018-02-19
      • 2016-04-05
      相关资源
      最近更新 更多