Package com.altibase.document.api
Interface FindOperation
- All Known Implementing Classes:
AltibaseCollectionImpl
public interface FindOperation
데이터베이스 조회(Find) 연산을 구성하고 실행하는 인터페이스이다.
이 인터페이스는 메서드 체이닝(method chaining)을 통해 sort,
limit, skip과 같은 조회 옵션을 순차적으로 설정할 수 있도록 설계되었다.
모든 옵션 설정이 완료된 후, 마지막으로 execute() 메서드를 호출하여
실제 데이터베이스 쿼리를 실행하고 그 결과를 DocResult로 받는다.
사용 예제
AltibaseCollection books = db.getCollection("books");
FindOperation findOp = books.findByCond(AltibaseDocument.parse("{\"category\": \"Fiction\"}"));
// 출판년도(publishYear) 내림차순 정렬, 첫 10개 건너뛰고, 최대 5개만 조회
try (DocResult results = findOp
.sort(AltibaseDocument.parse("{\"publishYear\": -1}"))
.skip(10)
.limit(5)
.execute()) {
for (AltibaseDocument book : results) {
System.out.println(book.toJson());
}
}
- Since:
- 1.0
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionexecute()지금까지 설정된 모든 옵션을 적용하여 실제 데이터베이스 조회를 실행한다.limit(int aLimit) 반환될 문서의 최대 개수를 제한한다.skip(int aSize) 결과셋에서 지정된 개수만큼의 문서를 건너뛴다.sort(AltibaseDocument aSort) 조회 결과를 정렬할 기준을 지정한다.
-
Method Details
-
skip
결과셋에서 지정된 개수만큼의 문서를 건너뛴다.주로 페이징(pagination) 구현 시
limit(int)과 함께 사용된다.- Parameters:
aSize- 건너뛸 문서의 개수. 0 또는 양수여야 한다.- Returns:
- 추가적인 옵션 설정을 위해 자기 자신(
this)을 반환한다. - Throws:
AltibaseCollectionException- aSize가 음수일 경우
-
limit
반환될 문서의 최대 개수를 제한한다.- Parameters:
aLimit- 반환할 문서의 최대 개수. 1 이상의 값이어야 한다.- Returns:
- 추가적인 옵션 설정을 위해 자기 자신(
this)을 반환한다. - Throws:
AltibaseCollectionException- aLimit이 1보다 작을 경우
-
sort
조회 결과를 정렬할 기준을 지정한다.정렬 기준은 필드 이름을 키(key)로, 정렬 방향을 값(value)으로 가지는
AltibaseDocument로 전달한다. 정렬 방향은 오름차순일 경우1또는"ASC"를, 내림차순일 경우-1또는"DESC"를 사용한다.// 예시 1: 'name' 필드 기준 오름차순 정렬 .sort(AltibaseDocument.parse("{\"name\": 1}")) // 예시 2: 'age' 필드 기준 내림차순, 'name' 필드 기준 오름차순 정렬 .sort(AltibaseDocument.parse("{\"age\": -1, \"name\": 1}"))- Parameters:
aSort- 정렬 기준을 정의하는AltibaseDocument객체- Returns:
- 추가적인 옵션 설정을 위해 자기 자신(
this)을 반환한다. - Throws:
AltibaseCollectionException- 정렬 문서 형식이 잘못되었을 경우
-
execute
DocResult execute()지금까지 설정된 모든 옵션을 적용하여 실제 데이터베이스 조회를 실행한다.이 메서드는 연쇄적인 옵션 설정의 마지막에 호출되는 최종(terminal) 연산이다. 반환된
DocResult는 데이터베이스 리소스를 포함하므로, 반드시try-with-resources구문을 사용하여 자동으로 닫히도록 해야 한다.- Returns:
- 조회 결과를 순회할 수 있는
DocResult인스턴스 - Throws:
AltibaseConnectionException- 데이터베이스 조회 중 오류가 발생할 경우
-