페이징 처리와 정렬은 전통적으로 SQL을 공부하는데 반드시 필요한 부분이다. 오라클은 '인라인 뷰(inline view)'를 알아야만 하고, MySQL은 limit를 알아야만 했다. JPA는 내부적으로 이런 처리를 'Dialect'라는 존재를 이용해서 처리한다. 그래서 개발자들은 SQL이 아닌 API의 객체와 메서드를 사용하는 형태로 페이징 처리를 할 수 있게 된다. Spring Data JPA에서 페이징 처리와 정렬은 특이하게도 findAll()이라는 메서드를 사용한다. findAll()는 JpaRepository 인터페이스의 상위인 PagingAndSortRepository의 메서드로 파라미터로 전달되는 Pageable이라는 타입의 객체에 의해서 실행되는 쿼리를 결정하게 된다. 주의할 점은 리턴 타입..
페이징
코드로 배우는 스프링 웹 프로젝트를 보고 작성 페이징 처리를 위해 필요한 파라미터1) 페이지 번호(pageNum)2) 한 페이지 당 몇 개의 데이터(amount) Criteria.java : 페이징 처리를 위해 필요한 파라미터를 객체로 묶어서 전달한다. (SQL에서 계산과 연관)import lombok.Getter;import lombok.Setter;@Getter@Setterpublic class Criteria { private int pageNum; private int amount; public Criteria(){ this(1,10); } public Criteria(int pageNum, int amount){ this.pageNum =..
책의 일부를 작성하였습니다. 1. order by의 문제 빠르게 동작하는 SQL을 위해서는 order by를 사용하는 작업을 가능하면 하지 말아야 한다. ?? order by 는 데이터가 많은 경우 성능의 저하를 가져오기 때문! 1) 데이터가 적은 경우 2) 정렬을 빠르게 할 수 있는 방법이 있는 경우가 아니라면 order by는 주의해야 한다... 2. 실행 계획과 order by 오라클 페이징 처리를 이해하기 위해서 알아두어야 하는 것이 바로 실행 계획(execution plan) 실행 계획이란? ▶'SQL을 데이터베이스에서 어떻게 처리할 것인가?' 에 대한 것 데이터베이스에 전달된 SQL문은 아래와 같은 과정을 거쳐서 처리된다. SQL 파싱 단계 : SQL 구문에 오류가 있는지, SQL 실행해야 하..