Nas aplicações empresariais além de persistir texto e número elas podem salvar arquivos ou documentos. Persistir esse tipo de informação é muito útil, por exemplo, um processo civil além de possuir informações ter o arquivo escaneado ou um twett com uma imagem. No cassandra se pode armazenar arquivos, no entanto, armazenar documentos muito grandes um banco do tipo documento seja mais indicado nessas ocasiões.


     Para demonstrar esse recurso será feita uma pequena aplicação, um álbum de fotografia,a foto será exibida a partir do nome dado a foto. No caso ao selecionar “Paris” será exibida a foto relacionada a esse nome.

Ao usar a palavra chave "Paris" imagem como essa deveria aparecer


Será utilizado para esse programa a plataforma SE 7 com Swing com oEasy-Cassandra, para isso é necessário baixar a lib doEasy-Cassandra além de suas dependências aqui.

O objeto que representará a foto terá dois campos:
  • Como a foto será exibida a partir do nome, então terá de ser única assim nossa chave
  • O arquivo da foto

A tabela 1 mostra como o Objeto foi modelado:


@ColumnFamilyValue
public class Photo {
@KeyValue
private String name;
      @ColumnValue
private File picture;
//getter and setter
}

tabela1: Representação da Foto no java
  

public class PhotoDao {
private Persistence persistence;
public PhotoDao() {
persistence =   EasyCassandraManager.getPersistence("exemplo",   "localhost", 9160);
}
public void criar(Photo bean) {
persistence.insert(bean);
}
@SuppressWarnings("unchecked")
public List listarTodos() {
return   persistence.findAll(Photo.class,ConsistencyLevelCQL.ALL);
}   
}



tabela2:Dao para a Photo
 
    Tão Logo esteja rodando o Cassandra o objetivo agora será criar o KeySpace e a Família de Coluna, entre no modo cliente do Cassandra e execute o comando na tabela 3.  É importante salientar que tanto a anotação ColumnValue e ColumnFamilyValue o valor padrão é o nome do campo e a classe respectivamente.


create keyspace exemplo;use exemplo;create column family 
Photo withcomparator = UTF8Type;


tabela3: criando o KeySpace e a Família de Coluna


Programa em execução

     Esse artigo apresentou a persistência de um arquivo demonstrando um exemplo prático com um álbum de fotografia, esse recurso é muito útil e seu uso ébastante simples. Além de suporte a classe  java.io.File oEasy-Cassandra tem suporte as classes que implementam ojava.nio.file.Path, assim se pode representar o arquivo desses dois modos.


Referência:
Easy-Cassandra: https://github.com/otaviojava/Easy-Cassandra/

Exemplo do programa de Álbum  no Netbeans: https://github.com/otaviojava/Easy-Cassandra/downloads

Exemplo do programa Álbum  no Eclipse: https://github.com/otaviojava/Easy-Cassandra/downloads