querydsl 사용하여 커스텀하게 생성한 레포지토리에 대한 테스트가 필요했다.
사실 테스트용 DB를 따로 생성하는 게 좋다고 듣기는 했는데 우선적으로 가볍게 테스트하기 위해서 기존 개발 DB 연결 상태에서 진행하게 됐다.
기존 데이터들과 별개로 동작하게 하기 위해 기존 데이터를 전부 제거 한 후에 테스트되도록 setup() 메서드에서 deleteAll() 을 사용했다.
deleteAll() 을 사용했더니 for문을 돌면서 id를 하나씩 검색하며 삭제를 하고 있었다.
Hibernate:
select
blogrecipe0_.blogRecipeId as blogreci1_2_,
blogrecipe0_.createdAt as createda2_2_,
blogrecipe0_.updatedAt as updateda3_2_,
blogrecipe0_.blogName as blogname4_2_,
blogrecipe0_.blogThumbnailImgUrl as blogthum5_2_,
blogrecipe0_.blogUrl as blogurl6_2_,
blogrecipe0_.description as descript7_2_,
blogrecipe0_.publishedAt as publishe8_2_,
blogrecipe0_.title as title9_2_
from
BlogRecipe blogrecipe0_
Hibernate:
delete
from
BlogRecipe
where
blogRecipeId=?
Hibernate:
delete
from
BlogRecipe
where
blogRecipeId=?
...
select가 먼저 실행되며 전체 조회가 발생한다.
조회한 값들의 id마다 하나씩 delete가 일어난다.
Hibernate:
delete
from
BlogRecipe
select 없이 바로 테이블에 대한 delete가 발생한다.