Palych_tw
@Palych_tw
Типа веб-разработчик

Как сделать жадную загрузку 1:n в Sequelize?

Всем привет. Пытаюсь реализовать отношение 1:n в sequelize.
Сделал по примеру docs.sequelizejs.com/manual/associations.html#1-n ,
Comment.belongsTo(models.Post, {
            foreignKey: 'commentableId',
            constraints: false,
            as: 'post'
        });

        Comment.belongsTo(models.Event, {
            foreignKey: 'commentableId',
            constraints: false,
            as: 'event'
        });

но никак не могу найти в документации как сделать жадную загрузку отношений через include. Т.е., я хочу для админки получить список комментраиев и запись, к которой каждый сделан. С ленивой загрузкой все ясно, пишем .getPost() или .getEvent() после того, как получим коммент из БД и увидим значение столбца "commentable". А вот как сделать жадную, мне не понятно.. как правильно написать include или, хотя бы, вручную дописать join.

let comments = await queryComments.findAll({
                include: [
                    {
                        as: "authorData",
                        model: models.User,
                        attributes: ['id', 'name']
                    },
                    {
                        association:  '', //как сюда подставить правильную ассоциацию? Полагаю, this.commentable работать не будет никак
                    }
                ],
                attributes: ['id','author','createdAt','parentId','commentable','commentableId'],
                ...pagination.pagesQuery
            });
  • Вопрос задан
  • 39 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы