Cascade 영속성 전이 사용
영속성 전이를 사용하거나 for문을 돌려서 순수 자바만을 사용했을 때는 아래처럼 일일히 데이터마다 쿼리를 날려서 지우게 했습니다. 지금은 그 수가 적어서 상관이 없지만 나중에 대용량 데이터를 다루게 될 때에 과부하가 걸릴 수도 있다는 판단이 들었습니다.
Where in query 사용
where in 을 사용해서 query를 날리면 댓글을 하나하나 삭제를 하는 것이아니라 한번에 날려줍니다.
public interface CommentRepository extends JpaRepository<Comment, Long>{
@Modifying //기존에 있는 메서드를 변경하기 때문에
@Query("delete from Comment c where c.id in :ids")
void deleteAllByIdIn(@Param("ids") List<Long> ids);
}
위의 코드는 where in을 사용해서 comment와 Likecomment, likepost, post 를 한번씩만 쿼리를 날려서 관련 목록을 다 삭제하였습니다.
다음에 코드 정리해서 포스팅 해보도록 하겠습니다.
참고블로그:
'TIL' 카테고리의 다른 글
TIL 첫 미니프로젝트 회고 221222 (0) | 2022.12.24 |
---|---|
TIL 자바가 모잘라 221221 (0) | 2022.12.22 |
TIL 스프링 좋아요 수 세기와 게시물 삭제 CASCADE 영속성 전이 221219 (0) | 2022.12.19 |
TIL/WIL CORS 221218 (0) | 2022.12.19 |
TIL 좋아요는 사랑입니다❤️ 221217 (0) | 2022.12.17 |