0

I have two tables, traders, and messages

Traders is associated to messages as following

traders.hasMany(models.messages, {as: 'sender',foreignKey : 'senderId'});
traders.hasMany(models.messages, {as: 'reciever',foreignKey : 'recieverId'});

now when I try to find trader name along with all messages using following code

   ctx.body = await ctx.db.messages.findAll({
        include:[{
            model: ctx.db.traders,
            as:'sender'
        }],
        attributes:['type',['data','message'],'createdAt','senderId','name'],
        where:{
            conversationId:ctx.request.body.conversationId
        }
    })

I get the following error

SequelizeEagerLoadingError: traders is not associated to messages!
Luca Kiebel
  • 9,790
  • 7
  • 29
  • 44
Faizan Ul Haq
  • 454
  • 2
  • 7
  • 23

1 Answers1

0

Try association from both models like,

traders.hasMany(models.messages, {
    as: 'sender',
    foreignKey: 'senderId'
});

messages.belongsTo(models.traders, {
    as: 'sender',
    foreignKey: 'senderId'
});