Repository Pattern și @InjectRepository() în NestJS în NestJS

database NestJS 10.x / TypeORM Q&A / Distribuie cod

Operațiuni CRUD pe entități TypeORM: interogări find, save, delete și construirea interogărilor complexe cu createQueryBuilder.

Sintaxă
@InjectRepository(User) private usersRepository: Repository<User>

În NestJS, accesul la date se realizează prin intermediul clasei Repository<Entity> injectate în servicii prin decoratorul @InjectRepository(Entitate).

Oferă metode puternice: find(), findOneBy(), save(), update(), precum și createQueryBuilder() pentru generarea de interogări SQL avansate cu clauze JOIN și paginare.

Exemplu: Serviciu CRUD complet cu Repository TypeORM
import { Injectable, NotFoundException } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { User } from './user.entity';

@Injectable()
export class UsersService {
  constructor(
    @InjectRepository(User)
    private readonly usersRepo: Repository,
  ) {}

  async findAllActive(): Promise {
    return this.usersRepo.find({
      where: { isActive: true },
      order: { createdAt: 'DESC' },
    });
  }

  async findByEmail(email: string): Promise {
    const user = await this.usersRepo.findOneBy({ email });
    if (!user) throw new NotFoundException('Utilizatorul nu există');
    return user;
  }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Repository Pattern și @InjectRepository() în NestJS

Ai o nelămurire despre utilizarea comenzii Repository Pattern și @InjectRepository() în NestJS sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.