해결된 질문
작성
·
564
1
@Test
void theta_join() {
em.persist(new Member("teamA"));
em.persist(new Member("teamB"));
em.persist(new Member("teamC"));
List<Member> result = queryFactory
.select(member)
.from(member)
.join(member.team, team)
.where(member.username.eq(team.name))
.fetch();
System.out.println("result = " + result);
// => result = []
assertThat(result).extracting("username").containsExactly("teamA","teamB");
}
위와 같은 쿼리문의 결과는 빈 결과값이 나오는데 이유를 모르겠습니다. 바로 밑의 질문이랑 비슷한데 답변이 잘 이해가 되지 않아 질문을 올렸습니다.
답변 1
Team teamA = new Team("teamA");
Team teamB = new Team("teamB");
em.persist(teamA);
em.persist(teamB);
em.persist(new Member("teamA",1,teamA));
em.persist(new Member("teamB",1,teamA));
em.persist(new Member("teamC",1,teamA));
List<Member> result = queryFactory
.select(member)
.from(member)
.join(member.team, team)
.where(member.username.eq(team.name))
.fetch();
System.out.println("result = " + result);
새로 해당 테스트에서 추가한 Member는 team이 세팅되어 있지 않습니다.
이 부분을 놓치신게 아닐까요?
빠른 답변 감사합니다.
강의 코드는 이해가 가는데 따로 제가 작성한 코드가 왜 빈 결과값이 나오는지 이해가 가지 않아서요 ..