강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

KunAguero님의 프로필 이미지
KunAguero

작성한 질문수

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

typeorm transaction

트랜잭션 질문드립니다.

작성

·

208

0

안녕하세요 .

강의 14:40 부분에서 queryRunner를 사용 시 중간에 트랜잭션으로 실행되어야하는 부분도 queryRunner.manger()... 을 통해 실행이 되어야 한다고 강의에 나와있습니다.

 

만약 아래와 같이 다른 함수를 호출한다면 트랜잭션이 정상적으로 실행이 되지 않는 것인지 궁금합니다. 트랜잭션 실행을 위해서는 모두 새롭게 함수를 작성하여야 하는 것이 맞는 것인가요?

const queryRunner = getConnection().createQueryRunner();
await queryRunner.connect();
 
...
await this.createUser(createUserDto);
await this.updateUserCount(updateUserCountDto);
...
 
함수는 임의로 작성하였습니다.
 
각 함수에는 await this.userRepository ... 로 구성되어 있습니다.

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 this.userRepository로 한 것은 기존 커넥션입니다. 트랜잭션이 적용되지 않습니다.

createQueryRunner 통해서 레포지토리를 불러와서 쿼리를 날려야 합니다.

KunAguero님의 프로필 이미지
KunAguero
질문자

답변 감사합니다. 걸리지도 않은 트랜잭션을 .. 위험할뻔 했네요

KunAguero님의 프로필 이미지
KunAguero

작성한 질문수

질문하기