TypeOrm에서 데이터 베이스의 레코드를 제거하는 코드에서 에러가
발생함으로써 문제를 식별하고 해결한 기록이다.
기존에는 romove를 이용하여 DB에서 레코드를 제거하고 있었는데
서버가 완전히 다운되는 문제가 발생 했었고 에러를 분석해본 결과
remove(null)이 실행되므로써 발생하는 문제임을 알 수 있었다.
(null 체크 예외처리도 부족했음)
매칭되지 않는 제거 요청에 대해서는 이미 존재하지
않으므로 제거 쿼리가 db로 전송되어도 제거하지 않고 넘어갈 것이라
는 안일함에서 발생한 문제였다.
orm 입장에서는 null타입 객체를 제거해 달라는 요청을 받게되니
어떻게 처리해야 할지 판단을 할 수 없게된다.
deletesms orm을 사용하지 않고 직접 delete 쿼리를 작성하는것과
유사한 방식으로 사용할 수 있다.
orm이 객체로써 제거를 시도하는 것이 아닌 지정한 id와 매칭되는
레코드를 제거하는 delete 쿼리 작성하여 바로 db로 전송한다.
만약 매칭되는 레코드가 있다면 찾아서 제거가 되고 없다면 쿼리가 아무런
효력을 발휘하지 못하는 의도한대로의 작동을 얻어낼 수 있었다.