Zigbang Tech Blog

TypeORM 트랜잭션 사용 방법

thumbnail

TypeORM Transaction 사용 방법

TypeORM 0.2x

  • Connection이나 EntityManager의 transaction 함수를 이용하여 사용하는 방법이 있음
  • 주의점은 제공받은 EntityManager를 사용해야 함 (다른 매니저를 사용하면 롤백 반영이 안됨)
  • QueryRunner 사용도 가능함

TypeORM 0.3x

  • Connection과 EntityManager 사용이 deprecated됨
  • DataSource나 EntityManagerManager를 사용하는 방법이 있음
  • QueryRunner 사용도 가능함

데코레이터 사용

  • @Transaction: 모든 실행을 단일 데이터베이스 변환으로 감싸는 역할
  • @TransactionManager: 트랜잭션 내에서 쿼리를 실행하는 데 사용
  • @TransactionRepository: 저장소에 트랜잭션을 주입하는 데 사용

외부 라이브러리 사용

  • typeorm-transactional-cls-hooked (0.2x만 지원) 또는 typeorm-transactional fork (0.3 지원)
  • 데코레이터를 사용할 수 있음

결과적으로 TypeORM transaction에는 다양한 사용 방법이 있으며, 0.2x부터 0.3x로 버전이 변경되면서 많은 변화가 있었다. 예제를 참고하여 적절한 방법을 선택하면 됨.