Node.JS

TypeORM queryRunner를 이용한 트랜잭션 제어

5kiran 2023. 2. 15.
반응형

queryRunner를 이용한 트랜잭션 제어

queryRunner는 single database connection을 제공하기 때문에 트랜잭션 제어가 가능하다.
좀더 세부적으로 직접 트랜잭션을 제어하고 싶을 때에는 QueryRunner를 사용하면 된다.

 

// queryRunner 생성!!
const queryRunner = dataSource.createQueryRunner()

// 새로운 queryRunner를 연결한다.
await queryRunner.connect()

// 생성한 쿼리러너를 통해 쿼리문을 날리는 것도 가능하다.
await queryRunner.query("SELECT * FROM users")


// 새로운 트랜잭션을 시작한다는 의미의 코드이다.
await queryRunner.startTransaction()

try {
    // 원하는 트랜잭션 동작을 정의하면 된다!
    await queryRunner.manager.save(user1)
    await queryRunner.manager.save(user2)

    // 모든 동작이 정상적으로 수행되었을 경우 커밋을 수행한다.
    await queryRunner.commitTransaction()
} catch (err) {
    // 동작 중간에 에러가 발생할 경우엔 롤백을 수행한다.
    await queryRunner.rollbackTransaction()
} finally {
    // queryRunner는 생성한 뒤 반드시 release 해줘야한다.
    await queryRunner.release()
}
반응형

'Node.JS' 카테고리의 다른 글

NodeJS Crypto 모듈을 활용한 데이터 보안 강화  (0) 2023.05.25
@nestjs/config 사용법  (0) 2023.02.16
NestJS TypeORM을 사용해보자  (0) 2023.02.14
NestJS Pipes 이용하기  (0) 2023.02.10
Nest.js를 시작해보자  (0) 2023.02.09

댓글