Conheça mais sobre o Easy-Cassandra



    O Easy-Cassandra é um framework ORM e um alto cliente para o Apache Cassandra em java, com ele é possível persistir objetos java de uma maneira muito fácil. Para isso é necessário adicionar anotações em sua Classe. Ele funciona como uma camada de abstração para o Thrift realizando as chamadas para o Cassandra.
    O Easy-Cassandra usa a implementação do Thrift e tem como principal objetivo é ter um uso simples. Ele precisa do jdk 7 ou acima para rodar, isso acontece devido há algumas parte de seu código utilizar invokedynamic ao invés do Reflection, assim terá uma resposta ainda mais rápida. O Easy-Cassandra foi o primeiro framework compatível com versões do Cassandra acima da versão 0.8 e 1.0.0, o primeiro a usar o CQL (Cassandra Query Language) além de usar o invokedynamic, que é cerca de quinze vezes mais rápido que o Reflection.

Características

  • Uma espécie de ORM para o Cassandra
  • Precisa apenas de anotações na classe para persistir informações
  • Persiste muito objetos java de uma maneira bastante fácil
  • Escreve e ler no Cassandra com Level Consistency.
  • O primeiro compatível com versões acima do Cassandra 0.8
  • Compatível com CQL 2.0
  • O primeiro a usar invokedynamic ao invés de Reflection
  • Sob a licença Apache versão 2.0


Objetos suportados



    O Easy-Cassandra tem suporte para os seguintes Objetos java:

  • todos os tipos primitivos (int, long, float, double, short, byte, boolean)
  • java.lang.Boolean
  • java.util.Date
  • java.lang.Double
  • java.lang.Float
  • java.lang.Integer
  • java.lang.Long
  • java.lang.String
  • java.lang.Boolean
  • java.lang.Byte
  • java.lang.Short
  • java.lang.Character
  • java.io.File
  • java.nio.file.Path


Histórico das versões


Versão: 1.0.7
  • atualizada para cassandra-thrift to 1.0.7
Version: 1.0.6
  • Correção de Bugs para persistência de Arquivos
  • Suporte Calendar interface
Version: 1.0.5
  • Agora pode armazenar arquivos
  • Suporte java.io.File e java.nio.file.Path
Version: 1.0.4
  • Maior performance
  •  menos memory
  • Agora suporta todos os tipos primitivos
  • Agora suporta Byte, character, Short, BigInteger e BigDecimal
Version: 1.0.3
  • Correções de Bugs com resultados
  • Atualização para o cassandra-thrift to 1.0.6
  • Agora utilizando java.util.loggin
Version: 1.0.2
  • Correções de bugs Boolean’s Object
Version: 1.0.1
  • Permitido usar ColumnValue e ColumnFamilyValue no modo padrão neste modo será usado o nome do campo ou objeto
  • Correções de Bugs

O que esperar nas próximas versões ?


  • Notificações quando não se tem anotações no índice ou chave na Classe
  • Recurso de selecionar ‘in’ no CQL comando
  • Cria automaticamente ColumnFamily e em tempo de execução
  • Cria automaticamente IndexValue e em tempo de execução
  • Suporte de um ou maios índices
  • Alimenta objetos a partir de uma Query
Exemplo: List persons= cassandraQuery.executeQuery(“select * from Person”).getResultList();



Simples Exemplo


 @ColumnFamilyValue(nome = “person”)
public class Person implements Serializable { 

private static final long serialVersionUID = 3L;

@KeyValue(auto=false)
private Long id;

@IndexValue
@ColumnValue(nome = "name")
private String name;

@ColumnValue(nome = "year")
private Integer year;

@EnumeratedValue(nome="sex")
private Sex sex;

@EmbeddedValue
private Address address;
//getter and setter
}
Um exemplo simples de anotações em uma classe 
 
public class PersonDAO {

private Persistence persistence;

public PersonDAO() {
persistence = EasyCassandraManager.getPersistence("javabahia", "localhost", 9160);
}

public void create(Person bean) {

persistence.insert(bean);
}

public void remove(Person bean) {
persistence.delete(bean);
}

public void remove(Long id){
persistence.deleteByKeyValue(id, Person.class);
}

public void update(Person bean) {

persistence.update(bean);
}
public Person retrieve(Object id) {

return(Person) persistence.findByKey(id, Person.class);
}
@SuppressWarnings("unchecked")
public List listAll() {

return persistence.findAll(Person.class);
}

@SuppressWarnings("unchecked")
public List listByIndex(Object index) {
return persistence.findByIndex(index, Person.class);
}
}
Um simples DAO realizando chamadas no cassandra

Mais informações

 
Se você deseja realizar alguma pergunta, contribuir, compartilhar experiência, fazer alguma coisa no projeto. Faça parte do Google Groups https://groups.google.com/group/easy-cassandra/



    Anúncios

    Deixe um comentário

    Preencha os seus dados abaixo ou clique em um ícone para log in:

    Logotipo do WordPress.com

    Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

    Imagem do Twitter

    Você está comentando utilizando sua conta Twitter. Sair / Alterar )

    Foto do Facebook

    Você está comentando utilizando sua conta Facebook. Sair / Alterar )

    Foto do Google+

    Você está comentando utilizando sua conta Google+. Sair / Alterar )

    Conectando a %s