JavaScript/js 문법

nestJs CURD 레포지토리

GREEN나무 2025. 2. 18. 10:12
728x90

아래 코드는 TypeORM의 QueryBuilder를 사용해 특정 조건(achievement 컬럼의 값이 전달받은 id와 일치하는 레코드)을 만족하는 항목들을 삭제하는 함수입니다.

async delete_achievement_c(id: number) {
  // 1. delete_achievement_c 함수는 숫자 타입의 id를 인자로 받아 비동기 방식으로 실행됩니다.
  
  await this.entityC
    // 2. this.entityC는 삭제 작업을 수행할 대상 엔티티(또는 테이블)에 해당하며, 여기서부터 QueryBuilder를 사용하여 쿼리를 구성합니다.
    
    .createQueryBuilder()
    // 3. createQueryBuilder()를 호출하여 QueryBuilder 인스턴스를 생성합니다. 이를 통해 SQL 쿼리를 동적으로 구성할 수 있습니다.
    
    .delete()
    // 4. delete() 메서드를 호출해 현재 빌드 중인 쿼리가 삭제 작업임을 명시합니다.
    
    .where('achievement = :id', { id })
    // 5. where() 메서드를 사용하여 삭제 조건을 설정합니다. 'achievement = :id'는 achievement 컬럼이 전달된 id와 같아야 함을 의미하며,
    //    { id } 객체를 통해 :id에 실제 값이 바인딩됩니다.
    
    .execute();
    // 6. execute() 메서드를 호출하여 완성된 삭제 쿼리를 데이터베이스에 실행합니다.
}

 

이거랑 같음

// 완료로 등록된 업적 삭제
async delete_achievement_c(id: number) {
  // 'achievement'는 삭제 조건에 해당하는 컬럼명입니다.
  return await this.entityC.delete({ achievement_id: id });
}