작성
·
245
0
안녕하세요 개인프로젝트를 하다가 궁금한게 생겨서 질문드립니다!
궁금한 것은 페치조인시 조인할 엔티티의 전부가 아닌 일부분만 조인할 수 있나? 입니다.
일반적으로 페치조인을 사용하면 팀(영상기준) 엔티티의 전부가 조인되는데 만약 팀 엔티티의 name만 사용하고 싶을때 그부분만 패치조인을 사용할 수 있을까요?
java
QueryResults<Recipe> recipeQueryResults = queryFactory
.selectFrom(recipe)
.join(recipe.member, member).fetchJoin()
.offset(page*10)
.limit(pageable.getPageSize())
.fetchResults();
Hibernate
Hibernate:
select
recipe0_.recipe_id as recipe_i1_2_0_,
member1_.member_id as member_i1_1_1_,
recipe0_.created_date as created_2_2_0_,
recipe0_.modified_date as modified3_2_0_,
recipe0_.content as content4_2_0_,
recipe0_.member_id as member_i6_2_0_,
recipe0_.title as title5_2_0_,
member1_.created_date as created_2_1_1_,
member1_.modified_date as modified3_1_1_,
member1_.email as email4_1_1_,
member1_.name as name5_1_1_,
member1_.password as password6_1_1_,
member1_.role as role7_1_1_,
member1_.user_id as user_id8_1_1_
from
recipe recipe0_
inner join
member member1_
on recipe0_.member_id=member1_.member_id
혹시나 제 설명이 이상할까봐 덧붙입니다.. 예를 들어서 위 코드에서는 member의 전부를 페치조인하지만 만약 member의 name만 페치조인 할 수 있는지에 대한 질문입니다.
답변 1
1
안녕하세요. 이호석님
페치 조인은 엔티티 자체를 조인하는 기능입니다.
원하시는 기능을 처리하려면 일반 조인을 사용하고, select에서 원하는 데이터를 지정해서 DTO로 조회하시면 됩니다.
감사합니다.