반응형

페이징 2

[Hibernate] fetchJoin 시에 중복문제, 페이징을 사용하는 경우엔 미발생?

fetchJoin을 하는 경우, 카테시안 곱으로 인해 중복 문제가 발생한다.아래와 같이 클라이밍 팀 관련 데이터가 존재한다고 해보자.1팀, 2팀은 클라이밍고수 라는 동일한 팀 이름을 가지고 있다.(2팀에 계신 분들은 국가대표 선수들이라 진짜 고수고, 1팀은 클라이밍 고수가 되고 싶은 팀이라고 하자 ㅎㅎ) querydsl 메서드아래 querydsl 코드로 '팀이름으로 해당 팀의 회원 명단을 반환'하는 메서드를 생성했다.12345678@Overridepublic ListTeam> findAllMembersByTeamName(String teamName) {    return jpaQueryFactory.selectFrom(team)                          .join(team.member..

[JPA] Spring Data JPA 페이징 기법을 적용해보자

조회 쿼리로 결과가 나올 때, 데이터가 너무 많으면 사용자가 보기에도 불편하고 로딩에도 오랜 시간이 걸린다. 그렇기 때문에 많은 사이트들에선 많은 데이터들을 페이지로 나누어서 관리한다. 스크롤을 내릴 때마다 데이터를 추가로 로드하는 무한 스크롤 방식을 사용하거나, 이전/다음 페이지로 이동하는 방식이 주로 사용된다. 이렇게 페이징 기법을 적용하려면 전체 데이터 개수와 요구되는 페이지넘버에 따른 인덱싱 계산을 해주어야 하는데, 실수할 여지도 많고 꽤나 번거롭다. 다행히 Spring Data JPA에서는 스스로 페이지 관련 인덱싱을 계산해준 결과를 반환해주는 기능을 제공해준다. 이번 포스팅에선 Spring Data JPA의 Pageable, Page에 대해 알아보고 MVC 패턴에서 Pageable이 어디까지 ..

1
반응형