1

私は Sequelize.js を ORM として使用しており、Review と User という 2 つのオブジェクト間の関係を定義しようとしています。1 人のユーザーが多くのレビューを書く/持つことができます。これにより、1 つのレビューは常に正確に 1 人のユーザーに属します。結合テーブルはありません。この情報は、user_id という列の Review オブジェクトに保存されます。

この関係を次のように定義しようとしました。

Review.belongsTo(User, { foreignKey: 'user_id' });
User.hasMany(Review, { foreignKey: 'user_id', useJunctionTable: false });

現在、レビューで検索を使用しており、ユーザー オブジェクトを含めたいと考えています。私は次を使用してそうします:

Review.find({
    where: {
        id: reviewId
    },
    include: [User]
});

エラーを取得します

ER_BAD_FIELD_ERROR: 「フィールド リスト」の列「user.user_id」が不明です。

Sequelize は を要求しuserます。user_id、どういうわけかこれを行う必要があると考えているためです。本当に興味深いのは、それが何らかの形で機能したが、現在は機能していないことです。ここのドキュメントは本来あるべきほどおしゃべりではありません。そのため、両方のオブジェクト間の関連付け、またはbelongsTo一般的な関係を定義する方法がわかりません。多分あなたの誰かがここで私を助けることができます.

4

1 に答える 1