본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. JPQL - 다형성 쿼리 크게 중요하진 않은 내용이지만 보고 넘어가자. TYPE 조회 대상을 특정 자식으로 한정 예) Item 중에 Book, Movie를 조회해라 [JPQL] select i from Item i where type(i) IN (Book, ...
[자바 ORM 표준 JPA 프로그래밍-기본편] 페치조인2 - 한계
본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 페치 조인의 특징과 한계 1) 페치 조인 대상에는 별칭(alias)을 줄 수 없다. 하이버네이트는 가능, 가급적 사용X 예시 String query = "select distinct t from Team t join fetch t.members as m where m...
[자바 ORM 표준 JPA 프로그래밍-기본편] 페치조인1 - 기본
본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. JPQL - 페치 조인(fetch join) 실무에서 정말정말 중요함 SQL 조인 종류X JPQL에서 성능 최적화를 위해 제공하는 기능 연관된 엔티티나 컬렉션을 SQL 한 번에 함께 조회하는 기능 join fetch 명령어 사용 페치 조인 ::= [ LEF...
[자바 ORM 표준 JPA 프로그래밍-기본편] 경로표현식
본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 경로 표현식 .(점)을 찍어 객체 그래프를 탐색하는 것 경로 표현식 용어 정리 상태 필드(state field): 단순히 값을 저장하기 위한 필드(ex: m.username) 연관 필드(association field): 연관관계를 위한 필드 ...
[자바 ORM 표준 JPA 프로그래밍-기본편] JPQL 함수
본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. JPQL 기본 함수 JPQL에서 제공하는 표준 함수이기에 데이터베이스에 관계없이 사용하면 된다. CONCAT String query = "select concat('a', 'b') from Member m"; List<String> resultList = e...
[자바 ORM 표준 JPA 프로그래밍-기본편] 조건식 (CASE 등등)
본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 조건식 - CASE 식 String query = "select " + "case when m.age <= 10 then '학생요금' " + " when m.age >= 60 then ...
[자바 ORM 표준 JPA 프로그래밍-기본편] JPQL 타입 표현과 기타식
본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. JPQL 타입 표현 문자: ‘HELLO’, ‘She’’s’ 숫자: 10L(Long), 10D(Double), 10F(Float) Boolean: TRUE, FALSE ENUM: jpabook.MemberType.Admin (패키지명 포함) Team team =...
[자바 ORM 표준 JPA 프로그래밍-기본편] 서브 쿼리
본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 서브 쿼리 나이가 평균보다 많은 회원 select m from Member m where m.age > (select avg(m2.age) from Member m2) 위에 있는 m 대신 서브 쿼리에서 새로운 m2를 사용하면 성능이 더 잘 나온다. 한 건...
[자바 ORM 표준 JPA 프로그래밍-기본편] 조인
본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 조인 엔티티를 중심으로 동작한다. 객체 스타일의 문법이다. 내부 조인: SELECT m FROM Member m [INNER] JOIN m.team t member있고 team이 없으면 데이터가 아예 안나옴(교집합) String...
[자바 ORM 표준 JPA 프로그래밍-기본편] 페이징
본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다. 페이징 API Oracle DB나 MSSQL같은 경우엔 페이징이 거지 같다. 쿼리를 막 rownum쓰고 그거를 order by까지 적용하려면 3depth로 거지같아진다.. 이러한 문제들을 깔끔하게 해결해준다. JPA는 페이징을 다음 두 API로 추상화 ...