0
私は、3.24.3のsequelizeを使用してMySQLデータベースに接続しています。Sequelize - 子レコードをクエリから親テーブルに自動的に取り込む方法は?
データベースには、2つのテーブル(Paper & PaperVersion)と一対多の関係があります。 1用紙は複数のバージョンを持つことができます。 私の要件は、Paperテーブルから用紙を取得するための単一のクエリを記述することです。返される結果セットには、用紙に関連付けられたバージョンも含まれている必要があります。
これは私のモデルがどのように見えるかです:私は紙やPaperVersionモデルのいずれかで見つけたかのfindAllを実行するときに
PaperModel.findAll({
})
.then(function(papers){
// do some processing
});
PaperVersion.find({
where:{
paperId:paper.id,
}
}).then(function(version){
// do some processing
});
:
var Paper = sequelize.define("paper", {
Author: DataTypes.STRING,
Status: DataTypes.ENUM('Pending Submission','Submitted)
});
var PaperVersion = sequelize.define("paperVersion", {
ID: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
Title: DataTypes.STRING,
Description: DataTypes.STRING
},
{
classMethods:
{
associate: function(models){
PaperVersion.belongsTo(models.paper);
}
}
});
これは私がselect文を実行する方法ですPaperまたはPaperVersionテーブルからのみレコードを取得します。 私はどこかで、関連するテーブルのレコードを結果セットに含めることができます。誰かが私にこれを達成する方法を教えてもらえますか?このような
私は、次のエラーメッセージが表示さPaperVersionが紙に関連付けられていません! –
私の前のコメントは無視されます。私のモデルとデータベースは同期していませんでした。私は力の同期の後にそれを働かせました。ありがとう! –