A service contains business logic and orchestrates calls to repositories, other services, or external APIs. A repository is a data-access abstraction that handles persistence concerns such as queries and transactions. Services are injected with repositories — this keeps business logic and data access cleanly separated.
Service — owns business rules, validation logic, and orchestration.
Repository — owns data access: queries, inserts, updates, transactions.
This separation makes services easier to unit test (mock the repository).
TypeORM provides Repository<Entity> via @InjectRepository() out of the box.