우주에서 글을 적어본다
[Spring boot JPA] @Query 수정, 삭제 본문
프로젝트에서 수정과 삭제 구현 중 쿼리를 옳바르게 작성했는데 오류가 떴었다.
찾아보니 수정과 삭제를 할 때는 @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();
하지만 쿼리짜는 실력을 늘리기 위해서 슬프지만 저 편리한 기능을 사용하진 않았다...
'스프링' 카테고리의 다른 글
[Spring boot JPA] Fetch 전략과 orphanRemoval (0) | 2023.03.15 |
---|---|
[Spring boot JPA] 엔티티의 양방향 관계 (0) | 2023.02.19 |