This is my main model definition:
const Sequelize = require('sequelize')
// Import sequelize object,
// Database connection pool managed by Sequelize.
const sequelize = require('./database.js')
const CartTransaction = require('./CartTransaction');
const PayPalOrder = require('./PayPalOrder')
const CartTransactionPayPal = sequelize.define('cart_transaction_paypal', {
cart_transaction_paypal_id: {
type:Sequelize.INTEGER,
// To increment user_id automatically.
autoIncrement:true,
allowNull:false,
primaryKey:true
},
status: {type: Sequelize.STRING, allowNull: false}
});
CartTransactionPayPal.belongsTo(CartTransaction, {as: 'paypal_transactions', foreignKey: 'cart_transaction_id'});
CartTransaction.hasOne(CartTransactionPayPal, {as: 'paypal_transactions', foreignKey: 'cart_transaction_id'});
CartTransactionPayPal.belongsTo(PayPalOrder, {as: 'paypal_orders', foreignKey: 'paypal_order_id'})
PayPalOrder.hasOne(CartTransactionPayPal, {as: 'paypal_orders', foreignKey: 'paypal_order_id'})
When I attempt to do this joining operation:
await PayPalOrder.findAll({
include: [{
model: CartTransactionPayPal,
as: 'paypal_orders',
required: true,
include: [{
model: CartTransaction,
as: 'paypal_transactions',
required: true
I get this error:
"Unknown column 'paypal_transactions.cart_transaction_id' in 'field list'",
Why is this happening though. Shouldnt it be joining CartTransactionPayPal on CartTransaction since its a nested include? Am I missing something? Is my syntax wrong for nested include statements?