Ich bin Sequelize in einem FeathersJS Projekt, und ich habe ein Problem beim Versuch, Eager laden Verbände und Bestellung von Elterntabelle. Wenn ich nur hinzufügen, die Reihenfolge OR die auf die Abfrage umfassen alles funktioniert, dann ist es, wenn ich beide verwenden, dass ich den Fehler: Unhandled rejection Error: 'sales_flat_order' in order/group clause is not valid association
Sequelize: Eager Laden und Bestellen (auf Elterntabelle)
Abfrage:
sequelize.models.orders
.findAll({
limit: 10,
include: [ sequelize.models.items ],
order: [[ sequelize.models.orders, 'createdAt' ]],
})
.then(orders => {
// Error
});
Bestellen Modell:
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;
};
Modell
Item:
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;
};