typeorm에서 특정 엔티티의 이벤트시 발생시 동작하는 이벤트리스너를 엔티티에 등록할 수 있다.
하지만 항상 이벤트리스너가 발생하는건 아니고 객체가 아닌 엔티티 인스턴스를 생성해야 이벤트가 발생한다.
create(email:string,password,string){
cosnt user = this.repo.create({email,password});
return this.repo.save(user) -- 1
// return this.repo.save({email,password}) -- 2
}
2번과 같이 엔티티 인스턴스를 생성하지 않고 직접 객체를 저장한다면 이벤트리스너가 발생하지 않는다.
또한 save대신 insert,update메소드 실행시 @afterInsert는 발생하지 않으며 마찬가지로 remove대신 delete메소드 실행시 @afterRemove가 실행되지 않는다.
참고자료
https://stackoverflow.com/questions/54246615/what-s-the-difference-between-remove-and-delete