어떤 방법을 사용하든 JPQL에서 모든 것이 시작된다.
회원이 상품을 주문하는 다대다 관계라는 것을 주의해서 보자.
Address는 임베디드 타입인데 값 타입이므로 UML에서 스테리오 타입을 사용해 <<Value>>로 정의했다.(ORDERS 테이블에 포함됨)
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 m FROM Member AS m WHERE m.username = 'Hello'
대소문자 구분
엔티티와 속성은 대소문자를 구분한다.
SELECT, FROM, AS 같은 JPQL 키워드는 대소문자 구분 X