Lesson 16 / 33

TypeORM Basics

Define entities, use repositories, and query the database.

Define an entity

Use @Entity() and column decorators to map classes to database tables.

import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';

@Entity()
export class User {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @Column({ unique: true })
  email: string;

  @Column({ default: 'user' })
  role: string;
}

Inject & query repository

Inject Repository<Entity> to perform CRUD operations.

import { Injectable } 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 userRepository: Repository<User>
  ) {}

  findAll() {
    return this.userRepository.find();
  }

  create(user: User) {
    return this.userRepository.save(user);
  }
}