cassandra e possivel retornar uma sessao, a via de comunicacao do Cassandra com a aplicacao Java, alem disso sera criado o CassandraTemplate, uma api de alto nivel que consegue realizar a comunicacao Cassandra sua aplicacao a partir de um simples POJO, desse modo e possivel realizar a operacao CRUD de uma maneira bastante simples, o codigo abaixo mostra a interface do Cassandra template.public interface CassandraTemplate{ <T> T save(T entity); <T> Iterable<T> save(Iterable<T> entities); <T> void delete(T entity); <T> void delete(Iterable<T> entities); <K> void delete(K key, Class<?> entity); <K,T> void delete(Iterable<K> keys, Class<T> entity); <T> void deleteAll(Class<T> entity); <T> T update(T entity); <T> Iterable<T> update(Iterable<T> entities); <T,K> T findOne(K key, Class<T> entity); <T,K> List<T> findAll(Iterable<K> keys, Class<T> entity); <T> List<T> findAll(Class<T> entity); <T,I> List<T> findByIndex(String columnName,I index,Class<T> entity); <K,T>boolean exist(K key, Class<T> entity); void executeUpdate(String query); Operacoes que podem ser realizadas com o seu ObjetoAlem do CassandraTemplate existe o CassandraRepository, essa classe abstrata implementa o CrudRepository do SpringData, com ela e necessario apenas implementar o metodo que retornara o CassandraTemplate, conforme mostra a tabela abaixo.@Repository("personRepository")public class PersonRepository extends CassandraRepository<Person, UUID>{ @Autowired private CassandraTemplate cassandraTemplate; @Override protected CassandraTemplate getCassandraTemplate() { return cassandraTemplate; }}Criando o repositorio para a classe PersonComo o CassandraReporitory implementa a classe base de operacoes do Spring todas as suas operacoes estarao disponiveis para serem utilizadas com o Cassandra.public interface CrudRepository<T, ID extends Serializable> extends Repository<T, ID> { <S extends T> S save(S entity); <S extends T> Iterable<S> save(Iterable<S> entities); T findOne(ID id); boolean exists(ID id); Iterable<T> findAll(); Iterable<T> findAll(Iterable<ID> ids); long count(); void delete(ID id); void delete(T entity); void delete(Iterable<? extends T> entities); void deleteAll(); }Interface CrudRepository do Spring Data que e implementada pela classe abstrata CassandraRepositoryRealizado as configuracoes o proximo passo e executar o projeto como mostra o codigo a seguir:public class App { public static void main( String[] args ) { @SuppressWarnings("resource") ApplicationContext ctx = new GenericXmlApplicationContext("SpringConfig.xml"); PersonRepository personService=ctx.getBean(PersonRepository.class); UUID uuid=UUID.randomUUID(); Person person=new Person(); person.setId(uuid); person.setName("Otavio Santana"); person.setYear(25); personService.save(person); Person otavio=personService.findOne(uuid); System.out.println(otavio.getName()); }}Rodando o Simples Projeto, salvando e recuperando a informacaoCom isso foi demonstrado o conceito do Spring Data e o seu funcionamento com o Cassandra utilizando o Easy-Cassandra, o intuito criar uma interface padrao para que todos os modelos de persistencia a utilizem dentro do Spring e um grande e importante passo para utilizar uma nova base ou modelo de dados nao haja impacto dentro do Spring, mas e muito importante salientar que mesmo que varios bancos utilizem essa interface e importante considerar uma nova modelagem, ja que diferente dos bancos relacionais, a mudanca de um banco NOSQL pode significar a mudanca estrutura de armazenamento.Links: Spring Data: http://www.springsource.org/spring-data Easy-Cassandra: http://otaviojava.github.io/Easy-Cassandra/ Exemplo: https://github.com/otaviojava/Easy-Cassandra-samples