실무에서 엄청 중요함!!!
✅ 페치 조인(fetch join)
- SQL 조인 종류X
- JPQL에서 성능 최적화를 위해 제공하는 기능
- 연관된 엔티티나 컬렉션을 SQL 한 번에 함께 조회하는 기능
- join fetch 명령어 사용
- 페치 조인 ::= [ LEFT [OUTER] | INNER ] JOIN FETCH 조인경로
✅ 엔티티 페치 조인
- 회원을 조회하면서 연관된 팀도 함께 조회(SQL 한 번에)
- SQL을 보면 회원 뿐만 아니라 팀(T.*)도 함께 SELECT
- JPQL
select m from Member m **join fetch** m.team
SELECT M.*, **T.*** FROM MEMBER M
INNER JOIN TEAM T ON M.TEAM_ID=T.ID
✅ 시나리오 (Many to One)
@Entity
public class Member {
@Id @GeneratedValue
@Column(name = "MEMBER_ID")
private Long id;
@Column(name = "USERNAME")
private String username;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "TEAM_ID")
private Team team;
}
@Entity
public class Team {
@Id @GeneratedValue
private Long id;
private String name;
**@OneToMany(mappedBy = "team")
List<Member> members = new ArrayList<Member>();**
…
}