Î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;
}
}
Întrebări & Exemple de Cod:
Repository Pattern și @InjectRepository() în NestJSAi o nelămurire despre utilizarea comenzii
Repository Pattern și @InjectRepository() în NestJSsau 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.