TypeORM: подписаться на две модели - PullRequest
0 голосов
/ 14 января 2020

Привет, я работаю с TypeORM, и у меня возникли проблемы с подпиской на две модели, действия ... Я хочу прослушать изменения на двух моделях, а не только на одной

У меня есть две модели Пользователь и сообщение Как можно Я слушаю обновления на обеих этих моделях

import { EntitySubscriberInterface, EventSubscriber, InsertEvent, UpdateEvent } from 'typeorm';
import { User } from '../users/user.entity';

@EventSubscriber()
export class HistorySubscriber implements EntitySubscriberInterface<User> {

    listenTo() {
        return User; // here i would like to listen also to post Updates
    }


    /**
     * Called after User update.
     */
    async afterUpdate(event: UpdateEvent<User>) {
        const newValue = event.entity;

    }

}

1 Ответ

1 голос
/ 14 января 2020

A EntitySubscriberInterface может прослушивать только

  • только одну сущность или
  • для любой (всех) сущностей

См. документация для примера. Если вы посмотрите на соответствующую строку кода в TypeORM, которая оценивает listenTo(), также должна быть возможность фильтрации родительского класса классов сущностей.

subscriber.listenTo().isPrototypeOf(target);

Так что если User и Post класс сущности наследуется от одного и того же родительского класса, должна быть возможность подписки на оба класса с одним подписчиком.

...