✔ JPQL

어떤 방법을 사용하든 JPQL에서 모든 것이 시작된다.

JPQL 특징 정리

예제로 사용할 도메인 모델

회원이 상품을 주문하는 다대다 관계라는 것을 주의해서 보자.

Address는 임베디드 타입인데 값 타입이므로 UML에서 스테리오 타입을 사용해 <<Value>>로 정의했다.(ORDERS 테이블에 포함됨)

1. 기본 문법과 쿼리 API

JPQL도 SQL과 비슷하게 SELECT, UPDATE, DELETE 문을 사용할 수 있다.

엔티티 저장은 EntityManager.persist() 메소드를 사용하므로 INSERT 문은 없다.

JPQL 문법

select_ 문 :: =
    select_절
    from_절
    [where_절]
    [groupby_절]
    [having_절]
    [orderby_절]

update_문 :: = update_절 [where_절]
delete_문 :: = delete_절 [where_절]

전체 구조는 SQL과 비슷하다.

JPQL에서 UPDATE, DELETE 문은 벌크 연산이라고 한다[10.6]

SELECT 문

SELECT m FROM Member AS m WHERE m.username = 'Hello'