💜💜💜176 객체지향 쿼리 언어) 페치 조인 - 한계 📌 페치 조인 - 한계페치 조인 대상에는 별칭을 줄 수 없다. (JPA 동작 방식과 관련 O)EX) as m where m. ~~ … 불가능페치 조인 은 연관된 엔티티를 한 번의 쿼리로 함께 로딩하기 위한 기능임 !! 페치조인을 사용할 때 특정 엔티티나 컬렉션을 즉시 로딩하게 됨.별칭을 사용하면 명시적으로 어떤 엔티티나 컬렉션을 페치할 것인지 명확하지 않게 됨페치 조인은 주로 데이터 조회를 목적으로 사용됨. 별칭을 사용하게 되면 JPA가 해당 별칭을 가진 엔티티를 정확하게 식별하고 관리하기 어려움. JPA는 엔티티를 로딩할 때 내부적으로 엔티티 매핑 정보를 사용하여 자동으로 처리하기 때문에, 별칭이 있으면 이러한 과정이 복잡해질 수 있음하이버네이트는 가능, 가급적 사용X특정 조건에 맞는 데이터를 가져오.. 2024. 7. 30. 객체지향 쿼리 언어) JPQL - 페치 조인(fetch join) 📌 JPQL - 페치 조인(fetch join) 🌟🌟🌟 🌟🌟🌟실무에서 정말 정말 정말 중요 !!! 🌟🌟🌟SQL 조인 종류X연관된 엔티티나 컬렉션을 SQL 한 번에 함께 조회하는 기능JPQL에서 성능 최적화를 위해 제공하는 기능join fetch 명령어 사용해 [ LEFT [OUTER] | INNER ] JOIN FETCH 조인경로를 나타냄 📌 엔티티 페치 조인회원을 조회하면서 연관된 팀도 함께 조회(SQL 쿼리 한 번에 가능)SQL을 보면 회원 뿐만 아니라 팀(T.)도 함께 SELECT[JPQL]select m from Member m join fetch m.team >> m만 select 함 [SQL] SELECT M., T.* FROM MEMBER MINNER JOIN TEAM .. 2024. 7. 30. 객체지향 쿼리 언어) JPQL - 경로 표현식 📌 JPQL - 경로 표현식 📌 경로 표현식. (점)을 찍어 객체 그래프를 탐색하는 것. 상태필드, 단일 값 연관필드, 컬렉션 값 연관 필드어디로 가느냐에 따라 결과 값이 달라짐.⇒ 3가지를 구분해 이해해야 함.!!상태 필드(state field): 단순히 값을 저장하기 위한 필드 (ex: m.username)연관 필드(association field): 연관관계를 위한 필드단일 값 연관 필드: @ManyToOne, @OneToOne, 대상이 엔티티(ex: m.team)컬렉션 값 연관 필드: @OneToMany, @ManyToMany, 대상이 컬렉션(ex: m.orders)경로 탐색은 필드의 종류에 따라 다르게 이루어짐연관 필드에서 단일 값인지 컬렉션 값인지에 따라 탐색/조인 방식이 달라짐 📌 경로 표.. 2024. 7. 30. JPQL 📌 JPQL 타입 표현과 기타식 JPQL 타입 표현문자: ‘HELLO’, ‘She’’s’숫자: 10L(Long), 10D(Double), 10F(Float)Boolean: TRUE, FALSEENUM: jpabook.MemberType.Admin (패키지명 포함🌟)public enum MemberType { ADMIN, USER}member.setType(MemberType.ADMIN)...String query = "select m.username, 'HELLO', true From Member m" + "where m.type = jpql.MemberType.ADMIN"; //패키지명 포함엔티티 타입: TYPE(m) = Member (상속 관계에서 사용) JPQL 기타SQL과 문법이 .. 2024. 7. 27. 조인과 서브쿼리 📌 조인 내부 조인SELECT m FROM Member m [INNER] JOIN m.team tinner는 생략 가능외부 조인SELECT m FROM Member m LEFT [OUTER] JOIN m.team tnull값도 나옴 → 만약 team의 null값도 명시적으로 표현해줘야할 때 사용outer는 생략 가능세타 조인select count(m) from Member m, Team t where m.username = t.name막 조인연관관계 테이블도 조인. 카테시안 곱으로 모두 불러와 조회📌 조인 - ON 절ON절을 활용한 조인(JPA 2.1부터 지원)1. 조인 대상 필터링회원과 팀을 조인하면서, 팀 이름이 A인 팀만 조인//JPQLSELECT m, t FROM Member m LEFT JO.. 2024. 7. 27. 프로젝션과 페이징 📌 프로젝션 (SELECT) SELECT 절에 조회할 대상을 지정하는 것프로젝션 대상: 엔티티, 임베디드 타입, 스칼라 타입(숫자, 문자등 기본 데이터 타입) **관계형 DB는 스칼라 타입만 넣을 수 있음 SELECT m FROM Member m ->엔티티 프로젝션SELECT m.team FROM Member m ->엔티티프로젝션(멤버에 연관된 팀)SELECT m.address FROM Member m -> 임베디드 타입 프로젝션임베디드는 모두 어디 소속돼있기에 어디 소속인지를 명시해줘야함 .. 2024. 7. 27. 이전 1 ··· 6 7 8 9 10 11 12 ··· 30 다음 반응형