TypeOrm / / 2024. 11. 12. 00:11

TypeOrm 주요메서드

주요 메소드 및 기능

  1. create: 모델에 해당되는 객체를 생성하지만 데이터베이스에 저장하지 않음

     const user = this.userRepository.create({
       email: 'example@domain.com',
     });
    • 새 객체를 만들고 검증할 때 유용합니다.
  2. save: 객체를 데이터베이스에 저장

     const user = await this.userRepository.save({
       email: 'example@domain.com'
     });
    • 객체를 생성하고 즉시 데이터베이스에 저장할 때 사용됩니다.
  3. preload: 데이터베이스에 있는 데이터를 입력된 값으로 업데이트

     const user = await this.userRepository.preload({
       id: 101,
       email: 'new_email@domain.com',
     });
    • 지정된 ID의 객체가 있으면 해당 필드만 업데이트하고, 없으면 undefined를 반환합니다.
  4. delete: 조건에 맞는 데이터를 삭제

     await this.userRepository.delete(101);
    • 특정 ID를 기반으로 데이터를 삭제합니다.
  5. increment: 특정 필드의 값을 증가

     await this.userRepository.increment(
       { id: 3 },
       'count',
       100
     );
    • 주로 수량이나 카운트를 증가시킬 때 유용합니다.
  6. decrement: 특정 필드의 값을 감소

     await this.userRepository.decrement(
       { id: 1 },
       'count',
       2
     );
    • 수량을 줄이거나 특정 값을 감소시킬 때 사용됩니다.
  7. count: 조건에 맞는 데이터의 총 개수 반환

     const count = await this.userRepository.count({
       where: {
         email: ILike('%0%'),
       },
     });
    • 특정 조건에 맞는 데이터가 얼마나 있는지 확인할 때 사용됩니다.
  8. sum: 특정 필드 값의 합계를 계산

     const sum = await this.userRepository.sum('count', {
       id: LessThan(4),
     });
    • 특정 필드의 총합을 계산할 때 유용합니다.
  9. average: 특정 필드 값의 평균을 계산

     const average = await this.userRepository.average('count', {
       id: LessThan(4),
     });
    • 특정 조건에 해당하는 데이터의 평균을 구할 때 사용됩니다.
  10. minimum: 특정 필드 값의 최소값을 찾음

    const min = await this.userRepository.minimum('count', {
      id: LessThan(4),
    });
  11. maximum: 특정 필드 값의 최대값을 찾음

    const max = await this.userRepository.maximum('count', {
      id: LessThan(4),
    });
  12. find: 조건에 맞는 모든 데이터를 조회

    const users = await this.userRepository.find({
      where: { isActive: true },
      order: { createdAt: 'DESC' },
    });
  13. findOne: 조건에 맞는 첫 번째 데이터를 조회

    const user = await this.userRepository.findOne({
      where: { id: 3 },
    });
  14. findAndCount: 조건에 맞는 데이터를 조회하면서 총 개수도 함께 반환

    const [users, total] = await this.userRepository.findAndCount({
      take: 3,
    });
    • 페이징 처리를 할 때 매우 유용합니다.

자주 사용하는 추가 옵션들

  1. where: 조회 조건을 설정

    • Equal, Not, Like, In, Between 등을 조합하여 세부 조건을 설정할 수 있습니다.
  2. order: 정렬 순서 지정

     order: { id: 'ASC' }// 오름차순 정렬
  3. skip: 조회 결과에서 특정 개수만큼 건너뜀

     skip: 10// 10개를 건너뛰고 시작
    • 주로 페이징 처리를 위해 사용됩니다.
  4. take: 조회 결과에서 특정 개수만큼만 가져옴

     take: 5// 5개만 가져오기
    • skip과 함께 페이징 처리에 유용합니다.
  5. relations: 연관된 엔티티 데이터를 함께 가져옴

     relations: ['profile', 'photos']
  6. select: 특정 컬럼만 선택

     select: ['id', 'email']// 지정한 컬럼만 가져오기
  7. lock: 트랜잭션 내에서 데이터의 동시성 제어

    • pessimistic_read, pessimistic_write 등의 값을 지정해 동시 작업 시 충돌을 방지할 수 있습니다.
  8. cache: 쿼리 결과를 캐싱하여 성능 최적화

     cache: true

이러한 메소드와 옵션들을 잘 활용하면 다양한 상황에 맞는 효율적인 데이터 조회와 수정이 가능합니다.

'TypeOrm' 카테고리의 다른 글

TypeOrm FindManyOptions  (0) 2024.11.11
TypeOrm 관계 설정 옵션  (0) 2024.11.11
TypeOrm FindManyOptions  (0) 2024.11.11
TypeOrm Relationship  (0) 2024.11.09
TypeOrm Inheritance  (1) 2024.11.08
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유