Spring Data JPA에서 Page쿼리 작성도중 page의 size가 의도된 수넘어가면 타입에러가뜹니다 ㅠㅠ
625
작성한 질문수 24
실제 Comment도메인와 Query부분 로직입니다
문제는 Pageable의 size가 10이라고쳤을때 entity의 개수가 10개미만일경우는 에러가 발생하지않지만 딱 size개수 혹은 그이상이 될경우 페이지가 분리가 되지않고
위와같은 타입변환에러가 출력되었습니다 ( pageable의 size를 늘려줄경우 잘 작동합니다 페이지가 분리만 안되는거같아요 )
이유를 잘모르겠어서 querydsl 로도 똑같이 작성해봤는데
이는 잘 작동하였습니다 혹시 이부분에 대해서 아시는게 있는지 여쭈어 보고싶습니다 ㅠㅠ
정리 : Spring Data JPA에서 entity의 개수가 size를 넘어갈경우 페이지가 넘어가지지않고 타입변환에러가 발생 ! ( 이전에는 공부할때 이런경험이 없었습니다 )
* 그리고 페치조인이아니라 일반 join을 할경우 entity의 기본생성자가 private타입이면 안되는건가요 ??
답변 2
1
안녕하세요. 윤성님^^
countQuery가 잘못 작성되었습니다. countQuery를
select c from Comment... -> select count(c) from Comment ... 으로 변경하시면 정상 동작할꺼에요^^
추가로 스프링 데이터 JPA에서 10개 미만인 경우에 잘 동작했던 이유는 스프링 데이터 JPA에서 한페이지 이하인 경우에는 사실 count 쿼리 자체를 조회할 필요가 없기 때문에(한페이지 밖에 없다는 것을 알고 있으므로) 최적화 로직이 동작하고, 해당 카운트 확인 호출하지 않아서 문제가 발생하지 않았습니다.
QueryDSL에서 문제가 발생하지 않았던 이유는 QueryDSL이 내부에서 fetchCount select(comment) 라고 하면 fetchCount가 조회용 쿼리를 만들 때 select 부분을 엔티티 대신에 count 쿼리로 변경합니다.
감사합니다.
강의 관련 외 질문입니다.
0
64
2
SpringBoot4 + Hibernate7 모듈 등록 방법 공유
0
85
1
BeanCreationException
0
86
3
Update 후 UpdateMemberResponse 매핑할 때
0
46
1
트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?
0
97
2
페이징 + 검색조건 관련해서 질문드립니다.
0
70
1
Query Dsl Q파일 질문입니다.
0
81
1
루트 쿼리라는것은
0
58
1
메서드를 분리하는 기준
0
61
1
findAllWithMemberDelivery 메서드 질문드립니다.
0
108
3
연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략
0
83
2
fetch join과 영속화와 OSIV의 관계
0
83
2
Distinct 사용 전 결과에 대한 의문
0
113
2
레포지토리 계층에서의 트랜잭션에 대한 의문
0
55
1
영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.
0
77
2
dto 필드 속 엔티티 여부
0
58
1
뷰템플릿 사용 시
0
76
2
Result 클래스 관련 질문
0
56
1
@PostConstruct 프록시 관련 질문드립니다
0
85
1
DTO 대신 Form 사용은 안되나요?
0
133
1
OSIV ON 상태일 때
0
95
1
fetch join VS fetch join 페이징 궁금증
0
179
2
양방향 연관관계 알아보는 법?
0
104
1
16강 17강 간단 정리 이게 맞을까요 ?
0
165
2





