0
私はFeathersJSプロジェクトでSequelizeしていますが、熱心な負荷の関連付けと親テーブルによる注文を試みるときに問題が発生しています。 Unhandled rejection Error: 'sales_flat_order' in order/group clause is not valid association
Sequelize:Eagerの読み込みと注文(親テーブル)
クエリ:
sequelize.models.orders
.findAll({
limit: 10,
include: [ sequelize.models.items ],
order: [[ sequelize.models.orders, 'createdAt' ]],
})
.then(orders => {
// Error
});
注文モデル:
const Sequelize = require('sequelize');
module.exports = function(sequelize) {
const order = sequelize.define('orders', {
id: { type: Sequelize.INTEGER, primaryKey: true, field: 'entity_id' },
customerEmail: { type: Sequelize.STRING, field: 'customer_email' },
customerFirstName: { type: Sequelize.STRING, field: 'customer_firstname' },
customerLastName: { type: Sequelize.STRING, field: 'customer_lastname' },
state: { type: Sequelize.STRING },
grandTotal: { type: Sequelize.FLOAT, field: 'grand_total' },
createdAt: { type: Sequelize.DATE, field: 'created_at' },
updatedAt: { type: Sequelize.DATE, field: 'updated_at' },
}, {
freezeTableName: true,
tableName: 'sales_flat_order',
classMethods: {
associate(models) {
order.hasMany(models.items, { foreignKey: 'orderId' });
}
}
});
return order;
};
を私はちょうどオーダー
ORを追加した場合、クエリに含まれ、すべてが正常に動作し、私は両方を使用する場合、それは私がエラーを取得することです
項目モデル:
const Sequelize = require('sequelize');
module.exports = function(sequelize) {
const item = sequelize.define('items', {
id: { type: Sequelize.INTEGER, primaryKey: true, field: 'item_id' },
orderId: { type: Sequelize.INTEGER, field: 'order_id' },
productId: { type: Sequelize.INTEGER, field: 'product_id' },
productType: { type: Sequelize.STRING, field: 'product_type' },
sku: { type: Sequelize.STRING },
name: { type: Sequelize.STRING },
qtyOrdered: { type: Sequelize.INTEGER, field: 'qty_ordered' },
price: { type: Sequelize.FLOAT },
createdAt: { type: Sequelize.DATE, field: 'created_at' },
updatedAt: { type: Sequelize.DATE, field: 'updated_at' },
}, {
freezeTableName: true,
tableName: 'sales_flat_order_item',
classMethods: {
associate(models) {
item.belongsTo(models.orders, { foreignKey: 'orderId' });
}
}
});
return item;
};