public void 페치조인(){
List<Member> resultMember = em.createQuery(
"SELECT m FROM Member m JOIN FETCH m.orders WHERE m.id = :id", Member.class)
.setParameter("id", 1L)
.getResultList();
System.out.println(resultMember.size());
for(var member:resultMember){
// 로드된 연관 엔티티 데이터 확인
System.out.println("Member Name: " + member.getName());
for (Orders order : member.getOrders()) {
System.out.println("Order Product: " + order.getProduct());
}
}
}
List<Member> resultMember = em.createQuery(
"SELECT m FROM Member m JOIN FETCH m.orders WHERE m.id = :id", Member.class)
.setParameter("id", 1L)
.getResultList();
System.out.println(resultMember.size());
for(var member:resultMember){
// 로드된 연관 엔티티 데이터 확인
System.out.println("Member Name: " + member.getName());
for (Orders order : member.getOrders()) {
System.out.println("Order Product: " + order.getProduct());
}
}
}
Member Name: test Order Product: orderA Order Product: orderB
결과가 이런데, distinct 키워드를 안써서, 아래 결과가 맞는거 아닌가?
Member Name: test Order Product: orderA Order Product: orderB
니가 단일조회조건 줘놓고 distinct를 묻는 이유가 궁금하네
Jpa 책에선 저렇게 쿼리쏘면 결과가 두번 나와야한다고 설명함
Order가 두개라서
타입추론 개씨발 - dc App
hibernate 6부터 distinct 안써도 겹치는 엔티티 중복 제거해줌