-
JPA delete 쿼리가 실행되지 않을 때Spring 2021. 10. 26. 16:44
프로젝트 진행시에 JPA를 사용하면서
따로 쿼리설정을 해주지 않아도 findBy(column)의 형태가 가능하였다.
그래서 deleteBY(column)의 형태를 사용하려고 하였으나
데이터가 삭제되지 않았다
원인
EntityManager open -> SELECT 쿼리 실행 -> EntityManager closed -> DELETE쿼리 예외 발생 의 순으로 진행되기 되는데 이는
@Transactional 어노테이션이 붙어있는 JPARepository에 deleteBy...의 형태가 없기 때문이다.
해결
다음과 같이 사용하고자하는 deleteBy...에 @Transactional어노테이션을 붙여 해결하였다.
public interface PostImageRepository extends JpaRepository<PostImage, Integer> { @Transactional Integer deleteByFilePath(String filePath); }
(참고한 사이트)
'Spring' 카테고리의 다른 글
OAuth2 사용해서 react와 함께 소셜로그인 기능 만들기 (4) 2021.10.26 TDD (Test Driven Development) : 단위 테스트 작성하기 (0) 2021.10.26 Controller와 RestController ( + ResponseEntity) (0) 2021.10.26 DTO를 통해 mapping된 엔티티 데이터 묶어서 보내기 ( + 순환참조 방지 DTO) (2) 2021.10.26 controller에서 파라미터를 받는 방법 : @RequestParam, @RequestBody, @PathVariable (+ DTO를 포함하는 DTO) (0) 2021.10.26