📌 JPAL 문법
select절,
from절,
[where_절],
[groupby_절],
[having_절],
[orderby_절]
update문 :: update절 [where_절]
delete문 :; delete절 [where 절]
✔ 예시 ) select m from Member (엔티티 객체) as m where m.age > 18
- 엔티티 와 속성은 대소문자 구분 O (Member, age) ➡ 개발자가 구현한 로직처럼
- JPQL 키워드는 대소문자 구분 X (SELECT, FROM, where)
- 엔티티 이름 사용, 테이블 이름이 아님
- 별칭은 필수(m), (as는 생략가능)
📌 TypeQuery, Query
- TypeQuery : 반환 타입이 명확 할때 사용 (String인지 int인지 등)
- Query : 반환 타입이 명확하지 않을때 사용
👀 결과 조회 API
- query.getResultList() : 결과가 하나 이상일 때, 리스트 반환
- query.getSingleResult() : 결과가 정확히 하나, 단일 객체 반환
- 결과가 없으면 : NoResultException 반환
- 결과가 둘 이상이면 : NonUniqueResultException 반환
파라미터 바인딩 - 이름 기준, (위치 기준)
- 위치기준은 권장하지 않는 방식이다.
- setParameter을 사용해 값을 꺼내오는것이 효율적이다.