--
이 메일은 Google 그룹스 'Korea Spring User Group Q&A' 그룹에 가입한 분들에게 전송되는 메시지입니다.
이 그룹에서 탈퇴하고 더 이상 이메일을 받지 않으려면 ksug+uns...@googlegroups.com에 이메일을 보내세요.
웹에서 이 토론을 보려면 https://groups.google.com/d/msgid/ksug/29c9a836-0ac8-4f69-afc9-98bda51ff86d%40googlegroups.com을(를) 방문하세요.
현재 thingsboard 라는 프로젝트 분석을 어느정도 미쳤고, 거기에서 사용하는 방식을 설명드릴게요.
Restful api를 담당하는 계층부터 실제 crud 하는 계층까지 총 4단계로 구분해놨습니다만, 원하신다면 계층은 줄일 수 있으실 거 같고. 아무튼 각설하고 본론으로 들어오겠습니다.
Controller (restapi request mapper)
Service (각 target object별로 생성)
Dao (실제 db호출 데이터 가공 단계)
Repository (JPA based crud)
여기에서 repository 단계부터 반환하는 변수형을 TextPageData<?> 으로 줘서 갯수제한을 실현했습니다. 뭐 한 페이지가 1000개 보여준다면, 다음 페이지도 남은 거 중에 1000개 이렇게요.
10만건이든 1000만 건이든 1000건이든 데이터베이스 입장에서 풀 스캔은 어차피 쿼리 때마다 수행되므로 (딱히 인덱스를 사용하지 않는 이상) 비동기로 호출하시되, 쿼리는 딱 한 번만 하시는 걸 추천.
참고할 수 있는 기트 경로 붙일게요.
여기에서 키워드는 TextPageData 로 하시고, repository 계층까지 내려가보시면 도움될겁니당.
Repository 파일은 제일 상단프로젝트 중 Dao에 있어여