다음은 시나리오입니다. 나는 페이지 목록없이 모든 페이지를 볼 수있었습니다 (페이지 매김없이).Java (Named Query)를 사용하여 페이지 매김 구현
이제 백엔드 측면에서 레코드는 각 파트에 대해 2 개의 별도의 명명 된 쿼리 (실제 레코드/파트 1/파트 2의 개수 각각에 대해 하나씩)의 조합으로 검색됩니다.
@NamedQuery(name = "CustomDOTO.findPart1", query = "SELECT part1";
@NamedQuery(name = "CustomDOTO.findPart1Count", query = "SELECT count(part1)";
@NamedQuery(name = "CustomDOTO.findPart2", query = "SELECT part2";
@NamedQuery(name = "CustomDOTO.findPart2Count", query = "SELECT count(part2)";
이제 동일한 페이지 매김을 구현해야합니다. 그래서 나는 과 같은 사용자 정의 클래스 PagedResponse를 사용하는데 실제로는 2 가지로 구성됩니다.
private Long totalRecords;
private List<T> records;
또한 사용자 지정 메서드 runPaginatedQuery를 사용하여 페이지 매김 된 응답을 반환합니다. 최대의 결과는 각 호출에 증가 할 것이기 때문에 나는이 별도의 명명 된 쿼리를 갖고 있기 때문에 나는 runPaginatedQuery 방법을 명명 된 쿼리의 각 2 회를 호출하는 경우
protected <T> PagedResponse<T> runPaginatedQuery(Query query, Query cntQuery, int startingResult, int maxResults) {
}
내 질문은, 그것은 나에게 도움이되지 않습니다. Java 측에서 어떻게 처리합니까? 저에게 알려주세요. 이미 처리 할 수있는 UI가 있습니다.
Thx 많이 ... 명명 된 쿼리 자체에서 수정 되었습니까? 아니면 executePaginatedQuery 메서드에 대한 모든 업데이트가 있습니까? – testndtv
몇 가지 이유 때문에 나는 조건부로 호출 되었기 때문에 2 개의 쿼리를 병합 할 수 없다는 것을 알았습니다 ... 어떤 경우에는 1 일 수도 있고, 다른 경우에는 두 개의 쿼리가 호출 될 수도 있습니다 ... – testndtv
그래서 저는 페이지 매김 자바 코드 – testndtv