[TypeORM] AfterUpdate (Executed not after update, but during update)

개발/TypeORM 2021. 8. 31. 08:20

NestJS SubScriber에서 TypeORM AfterUpdate를 활용하여 알림을 구현하던 중, AfterUpdate가 사실상 WhileLoading(?)으로 작동하는 이슈가 발생하게 되었다. 왜 그런가 찾아보니 typeorm 깃헙 이슈에도 등록이 되어있는 이슈였다. 원인은 아마도 typescript가 오래된 버전의 javascript로 컴파일되면서 async & await 쪽에 문제를 일으키는 것 같다고 되어있었다. 어찌됐든 해결책은 AfterUpdate 함수의 맨 앞에 commitTranscation()과 startTrasnsaction()을 아래와 같이 추가하여 현재의 트랜잭션을 커밋하고, 새로운 트랜잭션을 시작하는 것이었다. async afterUpdate(event: UpdateEvent..