Введение в репозиторий в Nest
Пусть строка таблицы уже описана сущностью, а сервис всё ещё не знает, как прочитать её из PostgreSQL и записать обратно без ручного SQL.
Репозиторий - объект TypeORM, который привязан к одной сущности. Он знает имя таблицы и набор колонок, а методы репозитория выполняют типовые операции: выборку, вставку, обновление и удаление строк. Сущность описывает форму записи, репозиторий - дверь в таблицу.
Nest подставляет репозиторий в сервис
через внедрение: в конструкторе
указывают тип Repository
и класс сущности. Модуль темы
регистрирует сущность через
forFeature, корень держит
соединение с базой forRoot.
В разделе остаёмся на методах репозитория без построителя запросов, без связей между таблицами и без миграций. Пройдём чтение списка, отбор по полям, сортировку, страницы, создание, правку, удаление и подсчёт.
На сайте с материалами те же приёмы применяют к таблице статей: сервис не пишет SQL вручную, а просит репозиторий выполнить нужную операцию над строками сущности.