728x90
스프링 부트로 API를 만들고 있었다.
@GetMapping, @PutMapping, @PostMapping 어노테이션을 붙여서 조회, 삽입, 수정하는 API는 잘 만들었고 Postman을 이용하여 API 테스트까지 완료했다.
이렇게 필요한 거의 모든 API 구현이 거의 끝나가고 이제 삭제하는 API도 넣어야겠다 하고
이렇게 Get, Put, Post 하던 방식과 같은 방식으로 @DeleteMapping을 붙이고 삭제하는 API를 구현했다.
그 다음에 하던대로 Postman을 이용해서 API 테스트를 하는데
이런 에러가 났다.
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' call; nested exception is javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' call] with root cause
javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'remove' call
찾아봤더니 delete 하는 메소드에 @Transactional 어노테이션을 붙여줘야 한다고 한다.
붙여줬더니
이렇게 삭제가 멀쩡히 잘 되는 것을 볼 수 있다.
출처
https://yoonho-devlog.tistory.com/61
728x90