ERD설계 DB로 만들어 보기 .

이호용·2022년 7월 5일
0

ft_transcendence

목록 보기
11/14

우선 TypeORM이 Repository Pattern을 지원하기 때문에 Entity와 Repository를 사용할 수 있다.

레파지토리 사용법(1) - 커스텀

아래와 같이 Repository를 상속받아 새로운 custom Repository(UserRepository)를 만들수 있다.

import { EntityRepository, Repository } from 'typeorm';
import { User } from './user.entity';

@EntityRepository(User)
export class UserRepository extends Repository<User> {}

이렇게 만든 UserRepository는 services 에서 사용하기 위해
아래 처럼 모듈 파일에서 UserRepository를 사용하겠다고 imports해주어야한다.


@Module({
  imports: [TypeOrmModule.forFeature([UserRepository])],
  controllers: [UserController],
  providers: [UserService],
})
export class UserModule {}

레파지토리 사용법(2) - 기본

레파지토리를 사용안한다면, 아래 처럼 엔티티만 forFeature로 넘겨준다.

@Module({
  imports: [TypeOrmModule.forFeature([User])],
  controllers: [UserController],
  providers: [UserService],
})
export class UserModule {}

그리고 서비스에서 해당 엔티티를 기본 라이브러리로 제공하는 Repository를 통해 사용한다.

@Injectable()
export class UsersService {
  constructor(
    @InjectRepository(User)
    private usersRepository: Repository<User>,
  ) {}
}

0개의 댓글