하위 Station 만큼 퀴리 N개 및 favoritedate 테이블 조회 퀴리 1개 총 N+1 개 발생한다.
------------ 즐겨 찾기 전체 조회 요청 ------------
....
Hibernate:
select
favoriteda0_.id as id1_0_,
favoriteda0_.member_id as member_i2_0_,
favoriteda0_.source_id as source_i3_0_,
favoriteda0_.target_id as target_i4_0_
from
favorite favoriteda0_
where
favoriteda0_.member_id=?
Hibernate:
select
stationres0_.id as id1_4_0_,
stationres0_.name as name2_4_0_
from
station stationres0_
where
stationres0_.id=?
Hibernate:
select
stationres0_.id as id1_4_0_,
stationres0_.name as name2_4_0_
from
station stationres0_
where
stationres0_.id=?
Hibernate:
select
stationres0_.id as id1_4_0_,
stationres0_.name as name2_4_0_
from
station stationres0_
where
stationres0_.id=?
------------ 즐겨 찾기 전체 조회 요청 ------------
------------ 즐겨 찾기 전체 조회 요청 ------------
Hibernate:
select
favoriteda0_.id as id1_0_0_,
stationdat1_.id as id1_4_1_,
stationdat2_.id as id1_4_2_,
member3_.id as id1_2_3_,
favoriteda0_.member_id as member_i2_0_0_,
favoriteda0_.source_id as source_i3_0_0_,
favoriteda0_.target_id as target_i4_0_0_,
stationdat1_.name as name2_4_1_,
stationdat2_.name as name2_4_2_,
member3_.age as age2_2_3_,
member3_.email as email3_2_3_,
member3_.password as password4_2_3_,
member3_.role as role5_2_3_
from
favorite favoriteda0_
inner join
station stationdat1_
on (
favoriteda0_.source_id=stationdat1_.id
)
inner join
station stationdat2_
on (
favoriteda0_.target_id=stationdat2_.id
)
inner join
member member3_
on (
favoriteda0_.member_id=member3_.id
)
where
favoriteda0_.member_id=?
------------ 즐겨 찾기 전체 조회 요청 ------------
------------ 즐겨 찾기 전체 조회 요청 ------------
Hibernate:
select
favoriteda0_.id as id1_0_0_,
member1_.id as id1_2_1_,
stationdat2_.id as id1_4_2_,
stationdat3_.id as id1_4_3_,
favoriteda0_.member_id as member_i2_0_0_,
favoriteda0_.source_id as source_i3_0_0_,
favoriteda0_.target_id as target_i4_0_0_,
member1_.age as age2_2_1_,
member1_.email as email3_2_1_,
member1_.password as password4_2_1_,
member1_.role as role5_2_1_,
stationdat2_.name as name2_4_2_,
stationdat3_.name as name2_4_3_
from
favorite favoriteda0_
left outer join
member member1_
on favoriteda0_.member_id=member1_.id
left outer join
station stationdat2_
on favoriteda0_.target_id=stationdat2_.id
left outer join
station stationdat3_
on favoriteda0_.source_id=stationdat3_.id
where
favoriteda0_.member_id=?
------------ 즐겨 찾기 전체 조회 요청 ------------
장단점
JPQL 방식
장점
유연성: JPQL을 사용하면 쿼리를 매우 세밀하게 제어할 수 있습니다. 복잡한 조인, 조건, 서브쿼리 등을 사용자 정의로 구현할 수 있습니다.