Interface AltibaseCollection

All Superinterfaces:
AutoCloseable
All Known Implementing Classes:
AltibaseCollectionImpl

public interface AltibaseCollection extends AutoCloseable
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 Details

    • createDocument

      AltibaseDocument createDocument(String aJsonContent)
      JSON 문자열로부터 이 컬렉션의 컨텍스트에 맞는 새로운 AltibaseDocument 인스턴스를 생성한다.

      반환된 문서는 이 컬렉션의 메타데이터(키 컬럼명, 타입 등)를 포함하지만, 키 값 자체는 설정되지 않은 상태이다. KeyGenerationType.CLIENT 방식의 컬렉션에서는 이 메서드로 문서 생성 후, AltibaseDocument.setKeyValue(Object)를 호출하여 키를 설정해야 한다.

      Parameters:
      aJsonContent - 문서의 콘텐츠를 나타내는 JSON 형식의 문자열
      Returns:
      콘텐츠는 채워져 있으나 키 값은 설정되지 않은 새로운 AltibaseDocument 인스턴스
    • createDocument

      AltibaseDocument createDocument(Object aKey, String aJsonContent)
      지정된 키(Key)와 JSON 문자열로부터 즉시 삽입 가능한 완전한 AltibaseDocument 인스턴스를 생성한다.

      이 메서드는 KeyGenerationType.CLIENT 방식의 컬렉션에 문서를 삽입할 때 가장 편리한 방법이다.

      Parameters:
      aKey - 새 문서에 할당할 키 값. 이 값의 타입은 컬렉션 생성 시 정의된 키 타입과 일치해야 한다.
      aJsonContent - 문서의 콘텐츠를 나타내는 JSON 형식의 문자열
      Returns:
      키와 콘텐츠가 모두 설정된 새로운 AltibaseDocument 인스턴스
    • countDocuments

      long countDocuments(AltibaseDocument aFilter)
      조건 필터와 일치하는 문서의 개수를 반환한다.
      Parameters:
      aFilter - 조회 조건을 정의하는 AltibaseDocument 객체
      Returns:
      조건을 만족하는 문서의 수
      Throws:
      AltibaseConnectionException - 데이터베이스 연결에 문제가 발생할 경우
    • countDocuments

      long countDocuments()
      컬렉션 내의 모든 문서 개수를 반환한다.
      Returns:
      컬렉션의 전체 문서 수
      Throws:
      AltibaseConnectionException - 데이터베이스 연결에 문제가 발생할 경우
    • countDocumentsByJsonPath

      long countDocumentsByJsonPath(String aJsonPath)
      JsonPath 표현식과 일치하는 문서의 개수를 반환한다.
      Parameters:
      aJsonPath - JsonPath 표현식 문자열
      Returns:
      조건을 만족하는 문서의 수
      Throws:
      AltibaseConnectionException - 데이터베이스 연결에 문제가 발생할 경우
    • deleteOne

      UpdateResult deleteOne(Object aKey)
      지정된 키와 일치하는 문서를 삭제한다.
      Parameters:
      aKey - 삭제할 문서의 기본 키 값
      Returns:
      삭제 작업의 결과를 담은 UpdateResult
      Throws:
      AltibaseCollectionException - 키가 null일 경우
    • deleteOneByCond

      UpdateResult deleteOneByCond(AltibaseDocument aFilter)
      조건 필터와 일치하는 첫 번째 문서를 삭제한다.
      Parameters:
      aFilter - 삭제할 문서를 찾기 위한 AltibaseDocument 조건식
      Returns:
      삭제 작업의 결과를 담은 UpdateResult
      Throws:
      AltibaseCollectionException - 필터가 null일 경우
    • deleteMany

      UpdateResult deleteMany(AltibaseDocument aFilter)
      조건 필터와 일치하는 모든 문서를 삭제한다.
      Parameters:
      aFilter - 삭제할 문서를 찾기 위한 AltibaseDocument 조건식
      Returns:
      삭제 작업의 결과를 담은 UpdateResult
      Throws:
      AltibaseCollectionException - 필터가 null일 경우
    • find

      컬렉션의 모든 문서를 조회하기 위한 FindOperation을 시작한다.
      Returns:
      조회 연산을 구성하기 위한 FindOperation 인스턴스
    • findByCond

      FindOperation findByCond(AltibaseDocument aFilter)
      조건 필터와 일치하는 문서를 조회하기 위한 FindOperation을 시작한다.
      Parameters:
      aFilter - 조회 조건을 정의하는 AltibaseDocument 객체
      Returns:
      조회 연산을 구성하기 위한 FindOperation 인스턴스
    • findByJsonPath

      FindOperation findByJsonPath(String aJsonPath)
      JsonPath 표현식과 일치하는 문서를 조회하기 위한 FindOperation을 시작한다.
      Parameters:
      aJsonPath - Jayway JsonPath 표준을 따르는 JsonPath 표현식 문자열
      Returns:
      조회 연산을 구성하기 위한 FindOperation 인스턴스
    • findOne

      AltibaseDocument findOne(Object aKey)
      지정된 키와 일치하는 단일 문서를 조회한다.
      Parameters:
      aKey - 조회할 문서의 기본 키 값
      Returns:
      조회된 AltibaseDocument 객체. 문서가 존재하지 않을 경우 null을 반환한다.
      Throws:
      AltibaseCollectionException - 키가 null일 경우
    • insertOne

      InsertResult insertOne(AltibaseDocument aDoc)
      컬렉션에 단일 문서를 삽입한다.
      Parameters:
      aDoc - 삽입할 AltibaseDocument 객체
      Returns:
      삽입 작업의 결과를 담은 InsertResult
      Throws:
      AltibaseCollectionException - 문서가 null이거나, CLIENT 키 방식에서 키가 누락된 경우
    • insertMany

      List<InsertResult> insertMany(List<AltibaseDocument> aDocs)
      컬렉션에 여러 문서를 한 번에 삽입한다.

      내부적으로 JDBC 배치(batch) 처리를 사용하므로, 여러 개의 insertOne을 호출하는 것보다 효율적이다.

      Parameters:
      aDocs - 삽입할 AltibaseDocument 객체의 리스트
      Returns:
      각 문서에 대한 삽입 결과를 담은 InsertResult의 리스트
      Throws:
      AltibaseCollectionException - 문서 리스트가 null이거나 비어있을 경우
    • replaceOne

      UpdateResult replaceOne(Object aKey, AltibaseDocument aDoc)
      지정된 키와 일치하는 문서를 주어진 새 문서로 완전히 교체한다.
      Parameters:
      aKey - 교체 대상 문서의 기본 키 값
      aDoc - 교체할 새로운 AltibaseDocument 객체
      Returns:
      갱신 작업의 결과를 담은 UpdateResult
      Throws:
      AltibaseCollectionException - 키 또는 문서가 null일 경우
    • replaceOneByCond

      UpdateResult replaceOneByCond(AltibaseDocument aFilter, AltibaseDocument aDoc)
      조건 필터와 일치하는 첫 번째 문서를 주어진 새 문서로 완전히 교체한다.
      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:
      close in interface AutoCloseable
    • closeResources

      void closeResources()
      컬렉션이 내부적으로 캐싱하고 있는 리소스(예: PreparedStatement)를 명시적으로 해제한다. 일반적으로 close()에 의해 호출된다.
    • setCurrentUserId

      void setCurrentUserId(String aUserId)
      현재 작업을 수행하는 사용자 ID를 설정한다.

      설정된 사용자 ID는 문서 삽입 시 CREATED_BY 컬럼에, 문서 수정 시 LAST_MODIFIED_BY 컬럼에 기록된다. 이 메서드를 호출하지 않으면 감사 컬럼은 null로 저장된다.

      Parameters:
      aUserId - 현재 사용자 ID (null 허용)
    • getCurrentUserId

      String getCurrentUserId()
      현재 설정된 사용자 ID를 반환한다.
      Returns:
      현재 사용자 ID (설정되지 않은 경우 null)