본문 바로가기

JPA15

객체지향 쿼리 언어(JPQL) JPA는 다양한 쿼리 방법을 지원 JPQL JPA Criteria QueryDS 네이티브 SQL JDBC API 직접 사용, MyBatis, SpringJdbcTemplate 함께 사용 JPA는 SQL을 추상화한 JPQL 이라는 객체 지향 쿼리 언어 제공 SQL과 문법 유사, SELECT, FROM, WHERE, GROUP BY, HAVING, JOIN 지원 JPQL은 엔티티 객체를 대상으로 쿼리 SQL은 데이터베이스 테이블을 대상으로 쿼리 결국 JPQL을 짜면 SQL로 번역되어 실행되는 로직임. 2022. 9. 3.
스프링 데이터 JPA 페이징과 정렬 페이징과 정렬 파라미터 org.springframework.data.domain.Sort : 정렬 기능 org.springframework.data.domain.Pageable : 페이징 기능 (내부에 Sort 포함) 특별한 반환 타입 org.springframework.data.domain.Page : 추가 count 쿼리 결과를 포함하는 페이징 org.springframework.data.domain.Slice : 추가 count 쿼리 없이 다음페이지만 확인 가능 (내부적으로 limit + 1 조회) List : 추가 count 쿼리 없이 결과만 반환 페이징과 정렬 사용 예제 Page findByUsername(String name, Pageable pageable); //count 쿼리 사용 Sli.. 2022. 5. 6.
순수 JPA 페이징과 정렬 순수 JPA 페이징과 정렬 JPA는 페이징을 다음 두 API로 추상화한다. - setFirstResult(int startPosition) : 조회 시작 위치 - setMaxResult(int maxResult) : 조회할 데이터 수 아래는 순수 JPA 페이징 예시 이미지이다. Select * from 테이블명 orders LIMIT 숫자(★); 숫자만큼의 행 출력 Ex) 10행 출력 select * from member ORDERS LIMIT 10; Select * from 테이블명 orders LIMIT 숫자(★) OFFSET 숫자(♥); LIMIT 숫자 : 출력할 행의 수 OFFSET 숫자 : 몇번째 row부터 출력할 지. (1번째 row면 0) Ex) 10행씩 출력 1페이지 : select * f.. 2022. 5. 6.
JPA 모델링 설계하는 순서 '양방향 연관관계와 연관관계의 주인 2 - 주의점, 정리' 강의 내용 참조 JPA 모델링 할 때 단방향 매핑으로만 설계를 끝내야 한다. 실무에서 테이블 설계를 머리에서 그리면서 객체 설계를 같이 들어가야 한다, 그 시점에 테이블 관계에서 대략적인 foreign key가(1:N) 다 나온다. 그 때 다 쪽에서 단방향 매핑을 걸면서 들어가야 한다. 이 시점에 양방향 매핑까지 할 필요는 없다. 처음 설계 단계에서는 단방향 매핑으로만 설계를 끝내야 한다. 양방향 매핑은 후에 필요할 때 그 때 추가 해서 사용하면 된다. 2022. 4. 9.