📌 JPQL 소개
- 객체지향 쿼리이므로 테이블이 아닌, 엔티티 객체를 대상으로 쿼리
- SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않음
- 결국은 SQL로 변환됨
1. 기본문법
2. 집합과 정렬
3. TypeQuery, Query
//Query, TypedQuery
TypedQuery<Member> query = em.createQuery("select m from Member m", Member.class);
List<Member> resList = query.getResultList(); //컬렉션 반환
Member resOne = query.getSingleResult(); // 하나만 반환
TypedQuery<String> query2 = em.createQuery("select m.username from Member m", String.class);
Query query3 = em.createQuery("select m.username, m.age from Member m");//타입정보를 가져올 수 없을 때
4. 결과조회 API
📌 getSingleResult()의 경우 예외처리가 중요한데, spring data jpa을 사용하게 되면 그 안에서 try catch나 Optional 클래스를 사용하여 예외처리를 하고 반환해주므로 그다지 신경쓰지 않아도 됨
5. 파라미터 바인딩
//Param Binding(이름 기준)
Member singleResult = em.createQuery("select m from Member m where m.username = :username", Member.class)
.setParameter("username", "member1")
.getSingleResult();