• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

트랜잭션 질문드립니다.

22.07.29 15:28 작성 조회수 123

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

질문자

2022.07.29

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