Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JPQL
- HttpServletResponse
- 값 타입
- 스프링 이메일 전송
- api 개발
- MVC
- JPA
- 프로그래머스
- 스프링부트 OpenAI API
- 서버 배포
- JDBC
- springboot
- Json 객체
- 저장소 이전
- 자바
- 넘파이
- swap 메모리
- 파이썬
- github 복제
- 비밀번호 재설정 API
- 저장소 복제
- Servlet
- Chat GPT
- 우분투
- 두수의 합 자바
- jar빌드
- 페이징 정렬
- git 충돌 해결
- MySQL
- Git
Archives
- Today
- Total
현의 개발 블로그
[JPQL 문법] JPQL 기본 문법과 쿼리 API 본문
객체 지향 쿼리 언어 JPQL 기본 문법에 대해 살펴보자.
규칙
- 엔티티와 속성은 대소문자를 구분한다.
- ex) Member, age
- JPQL 키워드는 구분하지 않는다.
- ex) SELECT, from
- 테이블명이 아니라 엔티티명을 사용한다.
- 별칭은 필수로 있어야 하고 as는 생략 가능하다.
select m from Member as m where m.age > 18
집합과 정렬
select
COUNT(m),
SUM(m.age),
AVG(m.age),
MAX(m.age),
MIN(m.age)
from Member m
결과 조회 API
query.getResultList()
결과가 하나 이상일 때, 리스트를 반환한다. 결과가 없으면 빈 리스트를 반환한다.
query.getSingleResult()
무조건 결과가 하나인 단일 객체를 반환한다.
결과가 없으면 java.persistence.NoResultException이 발생하고,
결과가 두 개 이상이면 java.persistence.NoUniqueResultException이 발생한다.
파라미터 바인딩
.setParamter(key, value) 형태이다.
username에 "member1"을 대입하여 해당 이름인 Member 객체를 찾는다.
Member result =
em.createQuery("select m from Member m where m.username=:username", Member.class)
.setParameter("username", "member1")
.getSingleResult();
System.out.println(singleResult);
페이징 API
JPA는 페이징을 다음 두 API로 추상화한다.
- setFirstResult(int startPosition) : 조회 시작 위치 (0부터)
- setMaxResult(int maxResult): 조회할 데이터 수
List<Member> result = em.createQuery("select m from Member m order by m.age desc", Member.class)
.setFirstResult(0)
.setMaxResults(10)
.getResultList();
System.out.println("result.size() = " + result.size());
for (Member member1 : result){
System.out.println("member1 = " + member1);
}
Reference
자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의
초급자를 위해 준비한 [웹 개발, 백엔드] 강의입니다. JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자
www.inflearn.com
'스프링부트 이론 > JPA' 카테고리의 다른 글
[JPQL 문법] 프로젝션, 조인, 서브쿼리 (0) | 2023.08.02 |
---|---|
[JPQL 문법] 쿼리 언어 소개 (0) | 2023.08.02 |
[값 타입] 값 타입 컬렉션 (0) | 2023.06.01 |
[값 타입] 값 타입 비교 (0) | 2023.06.01 |
[값 타입] 값 타입과 불변 객체 (0) | 2023.05.29 |
Comments