Package com.altibase.document.api
Interface AltibaseCollection
- All Superinterfaces:
AutoCloseable
- All Known Implementing Classes:
AltibaseCollectionImpl
Altibase JSON 컬렉션에 대한 모든 데이터 조작(CRUD) 연산을 정의하는 핵심 인터페이스이다.
이 인터페이스는 문서를 삽입, 조회, 갱신, 삭제하는 기능을 제공하며,
AutoCloseable을 구현하므로 내부적으로 사용되는 리소스(예: PreparedStatement)의
효율적인 관리를 위해 try-with-resources 구문과 함께 사용하는 것을 권장한다.
사용 예제
try (AltibaseCollection books = db.getCollection("books")) {
// 컬렉션에 단일 문서 삽입
books.insertOne(books.createDocument("key1", "{\"title\": \"1984\"}"));
// 키로 단일 문서 조회
AltibaseDocument book = books.findOne("key1");
}
- Since:
- 1.0
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoidclose()이 컬렉션 인스턴스와 관련된 모든 리소스를 해제한다.void컬렉션이 내부적으로 캐싱하고 있는 리소스(예: PreparedStatement)를 명시적으로 해제한다.long컬렉션 내의 모든 문서 개수를 반환한다.longcountDocuments(AltibaseDocument aFilter) 조건 필터와 일치하는 문서의 개수를 반환한다.longcountDocumentsByJsonPath(String aJsonPath) JsonPath 표현식과 일치하는 문서의 개수를 반환한다.createDocument(Object aKey, String aJsonContent) 지정된 키(Key)와 JSON 문자열로부터 즉시 삽입 가능한 완전한AltibaseDocument인스턴스를 생성한다.createDocument(String aJsonContent) JSON 문자열로부터 이 컬렉션의 컨텍스트에 맞는 새로운AltibaseDocument인스턴스를 생성한다.deleteMany(AltibaseDocument aFilter) 조건 필터와 일치하는 모든 문서를 삭제한다.지정된 키와 일치하는 문서를 삭제한다.deleteOneByCond(AltibaseDocument aFilter) 조건 필터와 일치하는 첫 번째 문서를 삭제한다.find()컬렉션의 모든 문서를 조회하기 위한FindOperation을 시작한다.findByCond(AltibaseDocument aFilter) 조건 필터와 일치하는 문서를 조회하기 위한FindOperation을 시작한다.findByJsonPath(String aJsonPath) JsonPath 표현식과 일치하는 문서를 조회하기 위한FindOperation을 시작한다.지정된 키와 일치하는 단일 문서를 조회한다.현재 설정된 사용자 ID를 반환한다.컬렉션의 키 생성 방식을 반환한다.컬렉션의 메타데이터를 반환한다.getName()컬렉션의 이름을 반환한다.insertMany(List<AltibaseDocument> aDocs) 컬렉션에 여러 문서를 한 번에 삽입한다.insertOne(AltibaseDocument aDoc) 컬렉션에 단일 문서를 삽입한다.replaceOne(Object aKey, AltibaseDocument aDoc) 지정된 키와 일치하는 문서를 주어진 새 문서로 완전히 교체한다.replaceOneByCond(AltibaseDocument aFilter, AltibaseDocument aDoc) 조건 필터와 일치하는 첫 번째 문서를 주어진 새 문서로 완전히 교체한다.voidsetCurrentUserId(String aUserId) 현재 작업을 수행하는 사용자 ID를 설정한다.
-
Method Details
-
createDocument
JSON 문자열로부터 이 컬렉션의 컨텍스트에 맞는 새로운AltibaseDocument인스턴스를 생성한다.반환된 문서는 이 컬렉션의 메타데이터(키 컬럼명, 타입 등)를 포함하지만, 키 값 자체는 설정되지 않은 상태이다.
KeyGenerationType.CLIENT방식의 컬렉션에서는 이 메서드로 문서 생성 후,AltibaseDocument.setKeyValue(Object)를 호출하여 키를 설정해야 한다.- Parameters:
aJsonContent- 문서의 콘텐츠를 나타내는 JSON 형식의 문자열- Returns:
- 콘텐츠는 채워져 있으나 키 값은 설정되지 않은 새로운
AltibaseDocument인스턴스
-
createDocument
지정된 키(Key)와 JSON 문자열로부터 즉시 삽입 가능한 완전한AltibaseDocument인스턴스를 생성한다.이 메서드는
KeyGenerationType.CLIENT방식의 컬렉션에 문서를 삽입할 때 가장 편리한 방법이다.- Parameters:
aKey- 새 문서에 할당할 키 값. 이 값의 타입은 컬렉션 생성 시 정의된 키 타입과 일치해야 한다.aJsonContent- 문서의 콘텐츠를 나타내는 JSON 형식의 문자열- Returns:
- 키와 콘텐츠가 모두 설정된 새로운
AltibaseDocument인스턴스
-
countDocuments
조건 필터와 일치하는 문서의 개수를 반환한다.- Parameters:
aFilter- 조회 조건을 정의하는AltibaseDocument객체- Returns:
- 조건을 만족하는 문서의 수
- Throws:
AltibaseConnectionException- 데이터베이스 연결에 문제가 발생할 경우
-
countDocuments
long countDocuments()컬렉션 내의 모든 문서 개수를 반환한다.- Returns:
- 컬렉션의 전체 문서 수
- Throws:
AltibaseConnectionException- 데이터베이스 연결에 문제가 발생할 경우
-
countDocumentsByJsonPath
JsonPath 표현식과 일치하는 문서의 개수를 반환한다.- Parameters:
aJsonPath- JsonPath 표현식 문자열- Returns:
- 조건을 만족하는 문서의 수
- Throws:
AltibaseConnectionException- 데이터베이스 연결에 문제가 발생할 경우
-
deleteOne
지정된 키와 일치하는 문서를 삭제한다.- Parameters:
aKey- 삭제할 문서의 기본 키 값- Returns:
- 삭제 작업의 결과를 담은
UpdateResult - Throws:
AltibaseCollectionException- 키가 null일 경우
-
deleteOneByCond
조건 필터와 일치하는 첫 번째 문서를 삭제한다.- Parameters:
aFilter- 삭제할 문서를 찾기 위한AltibaseDocument조건식- Returns:
- 삭제 작업의 결과를 담은
UpdateResult - Throws:
AltibaseCollectionException- 필터가 null일 경우
-
deleteMany
조건 필터와 일치하는 모든 문서를 삭제한다.- Parameters:
aFilter- 삭제할 문서를 찾기 위한AltibaseDocument조건식- Returns:
- 삭제 작업의 결과를 담은
UpdateResult - Throws:
AltibaseCollectionException- 필터가 null일 경우
-
find
FindOperation find()컬렉션의 모든 문서를 조회하기 위한FindOperation을 시작한다.- Returns:
- 조회 연산을 구성하기 위한
FindOperation인스턴스
-
findByCond
조건 필터와 일치하는 문서를 조회하기 위한FindOperation을 시작한다.- Parameters:
aFilter- 조회 조건을 정의하는AltibaseDocument객체- Returns:
- 조회 연산을 구성하기 위한
FindOperation인스턴스
-
findByJsonPath
JsonPath 표현식과 일치하는 문서를 조회하기 위한FindOperation을 시작한다.- Parameters:
aJsonPath- Jayway JsonPath 표준을 따르는 JsonPath 표현식 문자열- Returns:
- 조회 연산을 구성하기 위한
FindOperation인스턴스
-
findOne
지정된 키와 일치하는 단일 문서를 조회한다.- Parameters:
aKey- 조회할 문서의 기본 키 값- Returns:
- 조회된
AltibaseDocument객체. 문서가 존재하지 않을 경우null을 반환한다. - Throws:
AltibaseCollectionException- 키가 null일 경우
-
insertOne
컬렉션에 단일 문서를 삽입한다.- Parameters:
aDoc- 삽입할AltibaseDocument객체- Returns:
- 삽입 작업의 결과를 담은
InsertResult - Throws:
AltibaseCollectionException- 문서가 null이거나, CLIENT 키 방식에서 키가 누락된 경우
-
insertMany
컬렉션에 여러 문서를 한 번에 삽입한다.내부적으로 JDBC 배치(batch) 처리를 사용하므로, 여러 개의
insertOne을 호출하는 것보다 효율적이다.- Parameters:
aDocs- 삽입할AltibaseDocument객체의 리스트- Returns:
- 각 문서에 대한 삽입 결과를 담은
InsertResult의 리스트 - Throws:
AltibaseCollectionException- 문서 리스트가 null이거나 비어있을 경우
-
replaceOne
지정된 키와 일치하는 문서를 주어진 새 문서로 완전히 교체한다.- Parameters:
aKey- 교체 대상 문서의 기본 키 값aDoc- 교체할 새로운AltibaseDocument객체- Returns:
- 갱신 작업의 결과를 담은
UpdateResult - Throws:
AltibaseCollectionException- 키 또는 문서가 null일 경우
-
replaceOneByCond
조건 필터와 일치하는 첫 번째 문서를 주어진 새 문서로 완전히 교체한다.- Parameters:
aFilter- 교체 대상 문서를 찾기 위한AltibaseDocument조건식aDoc- 교체할 새로운AltibaseDocument객체- Returns:
- 갱신 작업의 결과를 담은
UpdateResult - Throws:
AltibaseCollectionException- 필터 또는 문서가 null일 경우
-
getName
String getName()컬렉션의 이름을 반환한다.- Returns:
- 컬렉션 이름
-
getGenerationType
KeyGenerationType getGenerationType()컬렉션의 키 생성 방식을 반환한다.- Returns:
KeyGenerationType(UUID 또는 CLIENT)
-
getMetadata
CollectionMetaData getMetadata()컬렉션의 메타데이터를 반환한다.- Returns:
CollectionMetaData객체
-
close
void close()이 컬렉션 인스턴스와 관련된 모든 리소스를 해제한다.try-with-resources구문에 의해 자동으로 호출된다.- Specified by:
closein interfaceAutoCloseable
-
closeResources
void closeResources()컬렉션이 내부적으로 캐싱하고 있는 리소스(예: PreparedStatement)를 명시적으로 해제한다. 일반적으로close()에 의해 호출된다. -
setCurrentUserId
현재 작업을 수행하는 사용자 ID를 설정한다.설정된 사용자 ID는 문서 삽입 시
CREATED_BY컬럼에, 문서 수정 시LAST_MODIFIED_BY컬럼에 기록된다. 이 메서드를 호출하지 않으면 감사 컬럼은 null로 저장된다.- Parameters:
aUserId- 현재 사용자 ID (null 허용)
-
getCurrentUserId
String getCurrentUserId()현재 설정된 사용자 ID를 반환한다.- Returns:
- 현재 사용자 ID (설정되지 않은 경우 null)
-