반응형
안녕하세요 :>
JPQL이란?
JPQL은 SQL을 추상화한 JPQL이라는 객체 지향 쿼리 언어입니다.
JPA에서 자동으로 쿼리를 만들어주는데 조인을 걸어야하고, 검색 조건을 걸어야한다면 어떻게 처리를 할 것 인가? 를 도와주는 것이 JPQL입니다.
- SQL과 문법 유사, SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 등을 지원
- JPQL은 엔티티 객체를 대상으로 쿼리 / SQL은 데이터베이스 테이블을 대상으로 쿼리
- JPQL은 DB가 바뀌어도 쿼리를 바꿀 필요가 없음 JPA에서 알아서 변경해줌
createQuery를 통해 우리가 쿼리를 작성하면
List<Member> result = em.createQuery("select m from Member as m", Member.class).getResultList();
for(Member m : result) {
System.out.println("member.name = " + m.getName());
}
내가 작성한 쿼리는 주석에 있고 JPA가 그에 맞게 쿼리를 작성해서 표출해줍니다.
페이징 처리는 어떻게 할까요?
setFirstResult() : 첫번째 값
setMaxResult() : 마지막 값
List<Member> result = em.createQuery("select m from Member as m", Member.class).setFirstResult(0).setMaxResults(9).getResultList();
H2 DB로 limit 쿼리 작성 된걸 볼 수 있고
Oracle일 경우 rownum으로 쿼리가 작성됩니다.
인강으로 공부하면서 작성하는 글로 잘못된 정보가 있을 수도 있습니다! 잘못된 정보가 있을 시 댓글달아주세요 : 0
반응형
'JPA' 카테고리의 다른 글
[JPA] 플러시 flush란? (0) | 2021.06.30 |
---|---|
[JPA] 영속성 컨텍스트 PersistenceContext (4) | 2021.06.29 |
[JPA] DB 저장, 조회, 삭제, 수정하기 DB CRUD (4) | 2021.06.25 |
[JPA] DB 연결 설정 및 DB에 저장하기 (0) | 2021.06.24 |
[JPA] Eclipse로 JPA 프로젝트 생성하기 (0) | 2021.06.23 |