본문 바로가기

JPA/JPQL15

JPQL -벌크연산 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C JPQL - 벌크 연산 • 많은 양의 데이터를 대상으로 update, delete를 하는 연산입니다. EX) 재고가 10개 미만인 모든 상품의 가격을 10% 상승하려면? • JPA 변경감지 기능으로 실행하려면 너무 많은 SQL 실행 1. 재고가 10개 미만인 상품을 리스트로 조회한다. 2. 상품 엔티티의 가격을 10% 증가한다. 3. 트랜잭션 커밋 시점에 변경감지가 동작한다. 변경된 데이터가 100건이라면 100번의 UPDATE SQL 실행 ---> 데이터가 많을 수록 상당히 비효울적이다. 하여 한방에 100개의 데이터를 update해.. 2021. 7. 24.
JPA - Named 쿼리 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C Named 쿼리 - 정적 쿼리 • 미리 정의해서 이름을 부여해두고 사용하는 JPQL • 정적쿼리 • 어노테이션, XML에 정의 • 애플리케이션 로딩 시점에 초기화 후 재사용 • 애플리케이션 로딩 시점에 쿼리를 검증 (Named쿼리에 오타나, 문법 오류가 있으면 실행시점에 잡아줍니다.) Named쿼리는 아래와 같이 엔티티의 위에 어노테이션으로 사용할 수 있습니다. 실행은 아래와 같이 합니다. 2021. 7. 24.
JPQL -엔티티 직접사용 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 엔티티 직접 사용 - 기본 키 값 JPQL에서 엔티티를 직접 사용하면 SQL에서 해당 엔티티의 기본키 값을 사용합니다. 즉 아래의 두 쿼리 실행 결과는 같습니다. 엔티티 직접 사용 - 기본 키 값 엔티티를 파라미터로 전달 식별자를 직접 전달 위에서 본 두 코드의 결과는 같습니다. 엔티티 직접 사용 - 외래 키 값 위 두 쿼리도 결과는 같습니다. 2021. 7. 24.
JPQL 다형성 쿼리 김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다. https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C 다형성 쿼리 위와 같은 경우 JPQL은 특별한 기능을 제공합니다. Album, Movie, Book모두 Item형 타입이므로 아래와 같이 가져올 수 있습니다. select i from Item i where type(i) IN (Book, Movie) 위와 같은 JPA쿼리를 수행하면 실제 SQL은 아래와 같이 나갑니다. select i from i where i.DTYPE in ('Book', 'Movie') TREAT(JPA 2.1) • 자바의 타입 캐스팅과 유사 • 상속구조에서 부모 타입을 특정 자식 타입으로 다룰 때 사용 • FR.. 2021. 7. 24.