TypeORM 트랜잭션 사용 방법
![thumbnail](https://images.nomadterrace.com/articles/58c85f7e-cbaf-11ed-910b-0a58a9feac02.png)
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로 버전이 변경되면서 많은 변화가 있었다. 예제를 참고하여 적절한 방법을 선택하면 됨.