Document Manage

A interação com o banco de dados do tipo família de coluna é dado por duas classes:

  • ColumnFamilyManager: Para realizar operações no banco de dados de forma síncrona

  • ColumnFamilyManagerAsync: Para realizar operações no banco de dados de forma assíncrona.

ColumnFamilyManager

O ColumnFamilyManager é classe que realiza as operações de forma síncrona, com ele é possível realizar a criação, editação, remoção e a recuperação dentro dos bancos de dados do tipo família de coluna.

       ColumnEntity entity = ColumnEntity.of("columnFamily");
        Column diana = Column.of("name", "Diana");
        entity.add(diana);

        List<ColumnEntity> entities = Collections.singletonList(entity);
        ColumnFamilyManager manager = //instance;


        //inserts operations
        manager.insert(entity);
        manager.insert(entity, Duration.ofHours(2L));//inserts with 2 hours of TTL
        manager.insert(entities, Duration.ofHours(2L));//inserts with 2 hours of TTL
        //updates operations
        manager.update(entity);
        manager.update(entities);

ColumnFamilyManagerAsync

O ColumnFamilyManagerAsync é classe que realiza as operações de forma assíncrona, com ele é possível realizar a criação, editação, remoção e a recuperação dentro dos bancos de dados do tipo família de coluna.

Em alguns momentos é necessário saber quando tal operação foi finalizada, mesmo quando é utilizado de forma assíncrona. Com esse objetivo, essa classe também vem com suporte a callBack, assim, tão logo a operação seja finalizada.

Buscando as informações dentro de uma família de coluna:

No diana, as buscas tanto de forma síncrona e assíncrona são realizadas a partir da classe ColumnQuery, com essa classe é possível definir se alguns ou todos os apenas algumas colunas serão retornados, ordenação além da condição para a informação a ser recuperada.

A condição dentro da query é formada por ColumnCondition, ele á composta por uma condição e um documento, por exemplo, o a condição abaixo buscará informação em que nome seja igual a “Ada”.

Também possível agrupar as informações da condição com operadores AND, OR e NOT.

Caso não seja informado uma condição significa que ele tentará trazer todas as informações no banco de dados, semelhante ao “select * from database” em um banco relacional, vale salientar que nem todos os bancos possuem suporte a tal recurso.

Dentro do ColumnQuery também é possível paginar as informações utilizando onde deve começar a busca e o limit máximo de retorno.

Removendo as informações dentro de uma família de colunas:

Semelhante ao ColumnQuery,existe uma classe responsável por remover informações dentro da coleção de documentos: A classe ColumnDeleteQuery

Ela possui uma estrutura bem simples, sem paginação e ordenação, uma vez que o fogo será a remoção de informação dentro do banco de dados.

Last updated