0
私たちは、Node.jsのアプリのためのPostgresを使用していて、おおよそのように定義されてSequelizeモデルEntry
ていますクエリ-自己結合、関連レコードを含む
const entriesModel = sequelize.define('Entry',
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
post_date: {
type: DataTypes.DATE,
allowNull: false,
defaultValue:() => new Date()
}
/* ...more fields here, etc, etc... */
}, {
classMethods: {
associate: (models) => {
entriesModel.hasOne(models.Entry, {
onDelete: 'CASCADE',
foreignKey: {
name: 'parent_id',
allowNull: true
},
as: 'ParentEntry'
});
}
}
}
);
は、基本的には、エントリーが有してもよいです対応する親エントリ。私はすべてのエントリを取得し、その親エントリを引きたいが、私はしようとすると:
return models.Entry.findById(id, {
include: [
{
model: models.Entry,
where: {
parent_id: id
}
}
]
})
.then(entry => Promise.resolve(cb(null, entry)))
.catch(error => Promise.resolve(cb(error)));
私はエラーを取得する:「!エントリがエントリに関連付けられていません」
このクエリを実行して、この関連データを同じテーブルの別のレコードから取得するにはどうすればよいですか?