본문 바로가기

JPA/JPQL15

JPQL - 패치조인의 특징과 한계 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C JPQL - 패치조인의 특징과 한계 1. 패치 조인 대상에는 별칭을 줄 수 없습니다. ( 하이버네이트는 가능, 가급적 사용X ) 아래처럼 하시면 안됩니다. 2. 둘 이상의 컬렉션은 패치 조인 할 수 없습니다. (일대다의 경우에도 데이터가 cross되어 조인된 테이블이 상당히 커지는 상황에서, 컬렉션 패치조인은 cross된 테이블에서 또 cross연산을 합니다. 하여 데이터가 잘 맞지 않게 됩니다.) 3. 컬렉션을 패치 조인하면 페이징 API(setFirstResult, setMaxResults)를 사용할 수 없습니다. • 일대일, 다대.. 2021. 7. 24.
JPQL - 페치 조인(fetch join) 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C JPQL - 페치 조인(fetch join) • SQL 조인 종류X • JPQL에서 성능 최적화를 위해 제공하는 기능 • 연관된 엔티티나 컬렉션을 SQL한 번으로 함께 조회하는 기능 • join fetch 명령어 사용 • 페치 조인 ::= [ LEFT [OUTER] | INNER ] JOIN FETCH 조인경로 엔티티 페치 조인 • 회원을 조회하면서 연관된 팀도 함께 조회(SQL 한 번에) [JPQL] • SQL을 보면 회원 뿐만 아니라 팀(T.*)도 함께 SELECT • [JPQL] : select m from Member m joi.. 2021. 7. 23.
JPQL 경로 표현식 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 경로 표현식 : .(점)을 찍어 객체 그래프를 탐색하는 것 경로 표현식 용어 정리 • 상태 필드(state field): 단순히 값을 저장하기 위한 필드 (ex: m.username) • 연관 필드(association field): 연관관계를 위한 필드 - 단일 값 연관 필드: @ManyToOne, @OneToOne, 대상이 엔티티(ex: m.team) - 컬렉션 값 연관 필드: @OneToMany, @ManyToMany, 대상이 컬렉션(ex: m.orders) ● 상태 필드(state field): 경로 탐색의 끝, 탐색X ● 단일.. 2021. 7. 22.
JPQL 기본함수 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 기본함수 • CONCAT • SUBSTRING • TRIM • LOWER, UPPER • LENGTH • LOCATE • ABS, SQRT, MOD • SIZE, INDEX(JPA 용도) 위의 함수들로 안되면 사용자 정의 함수를 사용합니다. 사용자 정의 함수 호출 하이버네이트는 사용전 방언에 추가해야 합니다. • 사용하는 DB 방언을 상속받고, 사용자 정의 함수를 등록합니다 먼저 dialect 디렉토리를 만들고, 현재 사용중인 H2Dialect를 상속한 뒤, 사용자 함수를 등록합니다. 그리고 persistence.xml에 다음과 같이 .. 2021. 7. 21.