diff --git a/src/main/java/cokr/xit/foundation/component/QueryRequest.java b/src/main/java/cokr/xit/foundation/component/QueryRequest.java
index c00a0e3..f24d872 100644
--- a/src/main/java/cokr/xit/foundation/component/QueryRequest.java
+++ b/src/main/java/cokr/xit/foundation/component/QueryRequest.java
@@ -14,6 +14,7 @@ public class QueryRequest extends ServiceRequest {
private String orderBy;
private int pageNum;
private int fetchSize;
+ private boolean fetchAll;
private String download;
/**조회 조건 필드를 반환한다.
@@ -84,7 +85,7 @@ public class QueryRequest extends ServiceRequest {
* @return fetchSize 한 번에 가지고 올 결과 갯수
*/
public int getFetchSize() {
- return isEmpty(download) ? fetchSize : 0;
+ return fetchSize;
}
/**한 번에 가지고 올 결과 갯수를 설정한다.
@@ -96,6 +97,27 @@ public class QueryRequest extends ServiceRequest {
return self();
}
+ /**모든 조회 결과의 반환 여부를 반환한다.
+ * @return fetchAll 모든 조회 결과의 반환 여부
+ *
- 조회 결과를 모두 반환하려면 true
+ * - 그렇지 않으면 false
+ *
+ */
+ public boolean fetchAll() {
+ return fetchAll;
+ }
+
+ /**모든 조회 결과의 반환 여부를 설정한다.
+ * @param fetchAll 모든 조회 결과의 반환 여부
+ * - 조회 결과를 모두 반환하려면 true
+ * - 그렇지 않으면 false
+ *
+ */
+ public T setFetchAll(boolean fetchAll) {
+ this.fetchAll = fetchAll;
+ return self();
+ }
+
/**조회결과를 다운로드할 파일 유형을 반환한다.
* @return download 다운로드 파일 유형
* - 엑셀 파일 - "xls"
diff --git a/src/main/java/cokr/xit/foundation/web/AbstractController.java b/src/main/java/cokr/xit/foundation/web/AbstractController.java
index d429fd5..ba2abdc 100644
--- a/src/main/java/cokr/xit/foundation/web/AbstractController.java
+++ b/src/main/java/cokr/xit/foundation/web/AbstractController.java
@@ -141,11 +141,27 @@ public abstract class AbstractController extends AbstractComponent {
.addObject(prefix + "Total", bounded.getTotalSize());
}
+ /**한 번에 반환할 조회 결과의 수를 설정한다.
+ * - fetchAll이 true이면 모든 조회 결과 반환
+ * - 그렇지 않으면
+ *
- fetchSize가 0보다 크면 지정한 수대로 조회 결과 반환
+ * - 그렇지 않으면 디폴트 fetchSize(propertyService.properties.pageSize)대로 조회 결과 반환
+ *
+ *
+ *
+ * @param QueryRequest 유형
+ * @param req 조회 요청
+ * @return 조회 요청
+ */
protected T setFetchSize(T req) {
- if (req.getFetchSize() > 0
- || !isEmpty(req.getDownload())) return req;
-
- return req.setFetchSize(properties.getInt("pageSize"));
+ if (req.fetchAll())
+ return req.setFetchSize(0);
+ else {
+ int fetchSize = req.getFetchSize();
+ if (fetchSize < 1)
+ req.setFetchSize(properties.getInt("pageSize"));
+ return req;
+ }
}
/**InputStream을 지정한 유형과 이름으로 다운로드 한다.