스프링

[Spring boot JPA] @Query 수정, 삭제

우주로 날아간 사람 2023. 3. 15. 21:16

프로젝트에서 수정과 삭제 구현 중 쿼리를 옳바르게 작성했는데 오류가 떴었다.
찾아보니 수정과 삭제를 할 때는 @Transactional과 @Modifying를 붙여야 한다.

@Transactional
@Modifying
@Query("delete from Likes l where l.poll.id=:pollId and l.member.id=:memberId")
void deleteLike(@Param("pollId") Long pollId, @Param("memberId") Long memberId);

 

근데 굳이 저렇게 쿼리를 작성하지 않아도 된다는 것을 중간에 깨달았다. 
이런 식으로 작성해도 되는 것이었다. 
JPA는 생각보다도 훨씬 편리한 기능을 "많이" 제공하고 있음을 깨달았다. 

@Transactional
@Modifying
void deleteByPollAndMember();

 

하지만 쿼리짜는 실력을 늘리기 위해서 슬프지만 저 편리한 기능을 사용하진 않았다...