【问题标题】:Nodejs sequelize hasMany issueNodejs sequelize hasMany 问题
【发布时间】:2020-10-22 12:41:56
【问题描述】:

我已经为这个续集打破了我的头脑,以获得产品问题并包括它的答案

const ProductQuestions = sequelize.define('product_questions', {
  user: {
     type: Sequelize.BIGINT
  },
  product: {
     type: Sequelize.BIGINT
  },
  question: {
     type: Sequelize.TEXT
  }
});

ProductQuestions.associate = function(models) {
   ProductQuestion.hasMany(models.product_answers,{
       foreignKey: 'question',
       as: 'questionId'
    });
}

const ProductAnswer = sequelize.define('product_answers', {
  question: {
     type: Sequelize.BIGINT,
     field: 'questionId'
  },
  answer: {
     type: Sequelize.TEXT
  },
  user: {
     type: Sequelize.BIGINT,
     field: 'userId'
  }
});

ProductQuestiosn.findAll({include: ['product_answers']});

由于某种原因,查询运行时列错误

SELECT 
"product_questions".*, 
"product_answers"."id" AS "product_answers.id", 
"product_answers"."questionId" AS "product_answers.questionId",
"product_answers"."answer" AS "product_answers.answer", 
"product_answers"."userId" AS "product_answers.user", 
"product_answers"."productQuestionId" AS "product_answers.productQuestionId" 
FROM (
SELECT 
"product_questions"."id", 
"product_questions"."productId" AS "product", 
"product_questions"."question", 
"product_questions"."userId" AS "user", 
FROM 
"product_questions" AS "product_questions") 
AS "product_questions" 
LEFT OUTER JOIN "product_answers" AS "product_answers" 
ON "product_questions"."id" = "product_answers"."productQuestionId"

不知道为什么

ON "product_questions"."id" = "product_answers"."productQuestionId" 

应该是什么时候

ON "product_questions"."id" = "product_answers"."questionId"

感谢您的帮助

【问题讨论】:

    标签: node.js postgresql sequelize.js


    【解决方案1】:

    所以我想通了!

    看来我必须正确命名我的列

    对于我的 postgres 数据库中的 product_answers 表,我有列 questionId,但它应该命名为 productQuestionId。我想这是为了命名约定,我不能按照我想要的方式命名外键。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-21
    • 2016-04-08
    • 1970-01-01
    • 2018-03-12
    相关资源
    最近更新 更多