NestJS SubScriber에서 TypeORM AfterUpdate를 활용하여 알림을 구현하던 중, AfterUpdate가 사실상 WhileLoading(?)으로 작동하는 이슈가 발생하게 되었다. 왜 그런가 찾아보니 typeorm 깃헙 이슈에도 등록이 되어있는 이슈였다.
원인은 아마도 typescript가 오래된 버전의 javascript로 컴파일되면서 async & await 쪽에 문제를 일으키는 것 같다고 되어있었다. 어찌됐든 해결책은 AfterUpdate 함수의 맨 앞에 commitTranscation()과 startTrasnsaction()을 아래와 같이 추가하여 현재의 트랜잭션을 커밋하고, 새로운 트랜잭션을 시작하는 것이었다.
[TypeORM] AfterUpdate (Executed not after update, but during update)
NestJS SubScriber에서 TypeORM AfterUpdate를 활용하여 알림을 구현하던 중, AfterUpdate가 사실상 WhileLoading(?)으로 작동하는 이슈가 발생하게 되었다. 왜 그런가 찾아보니 typeorm 깃헙 이슈에도 등록이 되어있는 이슈였다.
원인은 아마도 typescript가 오래된 버전의 javascript로 컴파일되면서 async & await 쪽에 문제를 일으키는 것 같다고 되어있었다. 어찌됐든 해결책은 AfterUpdate 함수의 맨 앞에 commitTranscation()과 startTrasnsaction()을 아래와 같이 추가하여 현재의 트랜잭션을 커밋하고, 새로운 트랜잭션을 시작하는 것이었다.
아래의 코드와 같은 방식으로 하면 혹시라도 트랜잭션 락이 발생할 가능성이 존재하기 때문에 해당 깃헙의 이슈 진행 상황을 계속 체크해보면서 추후 코드를 보수해야한다.
참고)
https://stackoverflow.com/questions/62887344/queries-in-afterupdate-are-not-working-as-expected-in-typeorm
'개발 > TypeORM' 카테고리의 다른 글