[TIL] soft delete 된 데이터 find하기

최하온·2024년 3월 13일
0

TIL

목록 보기
46/71
post-thumbnail

🚨Issue occuring


예매 환불 로직을 짜던 중 예매로 인해 soft delete된 seat를 가져와야함.

💦What I tried


soft delete 된 데이터가 데이터가 테이블에는 남아있어 조회가 될 줄 알았으나 find같은 메서드로 검색이 안 된 다는걸 몰랐음

    const seats = await this.seatRepository.findOne({
      where: { id: seatId },
      withDeleted: true,
    });
   let seatId = deleteReservationDto.seatId;
    const seats = await this.seatRepository.findOne({ //'number' 형식은 'boolean' 형식에 할당할 수 없습니다.
     select:{id:seatId}
    });

사용법을 제대로 모르고 쓰는 줄 알고 공식문서도 보고 전에 했던 예제도 봤음.
결론은 삭제된 데이터를 계속 조회하고 있던 것.

💡How solve issue

withDeleted: true

soft delete가 된 데이터는 withDeleted 옵션을 주어야 검색이 가능함


    const seats = await this.seatRepository.findOne({
      where: { id: seatId },
      withDeleted: true,
    });

📃What I learned new


물어보고 검색하자
1. withDeleted
2. restore

  • soft delete된 데이터는 restore를 통해 되살릴 수 있음!

0개의 댓글