dessa maneira fica mais simples (alem do codigo mais limpo, afinal sobrecarga de construtores nao e uma boa pratica) de se criar simples configuracoes para a fabrica. Como, por exemplo: ClusterInformation clusterInformation = ClusterInformation.create() .addHost(HOST) .withDefaultKeySpace(KEY_SPACE).withUser(USER).withPassword(PASS); easyCassandraManager = new EasyCassandraManager(clusterInformation);Criando configuracao para a fabrica de conexaoDessa forma a configuracao para usar o Spring no Cassandra tambem mudou para: localhost org.easycassandra.persistence.cassandra.spring.entity.Contact org.easycassandra.bean.model.Step org.easycassandra.bean.model.Weight Nova configuracao do Spring no Easy-CassandraTalvez a melhoria mais marcante nessa versao sao os recursos dos QueryBuilders, os queryBuilders sao maneiras muito mais facil de fazer interacoes com o Cassandra com configuracoes adversas de uma maneira mais simples, com ele e possivel definir o nivel de consistencia, definir o timeStamp, quais campos serao manipulados. SimpleID id = new SimpleID(); id.setIndex(ONE_HUNDRED_THIRTY); id.setKey(ONE_HUNDRED_THIRTY); UpdateBuilder update = template.updateBuilder(SimpleQueryBuilder.class, key); update.put("map", "name", "otavioMap").value("value", TEN_DOUBLE).execute();Simples exemplo inserindo valores a partir da chaveUpdateBuilder update = persistence.updateBuilder(SimpleQueryBuilder.class); update.whereEq(Constant.KEY, Constant.ONE).whereEq(Constant.INDEX, Constant.ONE).addList("list", "otavioList").execute();criando toda a query de atualizacao UpdateBuilder update = persistence.updateBuilder(SimpleQueryBuilder.class); update.whereEq(Constant.KEY, Constant.ONE).whereEq(Constant.INDEX, Constant.ONE).value("value", 12D).executeAsync(new ResultAsyncCallBack() { @Override public void result(Boolean bean) { // do some action }}); executando uma atualizacao assincronamenteInsertBuilder insert= persistence.updateBuilder(SimpleQueryBuilder.class);Set set = new HashSet<>();set.add("Linda");Map map = new HashMap<>();map.put("love", "Otavio and Poliana");insert.value(Constant.KEY, Constant.ONE_HUNDRED).value(Constant.INDEX, Constant.ONE_HUNDRED).value(Constant.LIST_COLUMN, Arrays.asList("Poliana", "Otavio", "Love")).value(Constant.SET_COLUMN, set).value("map", map).execute();Realizando insercao SimpleID id = new SimpleID(); id.setIndex(ONE_HUNDRED_TWO); id.setKey(ONE_HUNDRED_TWO); SimpleBean simpleBean = new SimpleBean(); simpleBean.setId(id); simpleBean.setValue(VALUE); InsertBuilder insert2 = persistence.updateBuilder(simpleBean); insert2.executeAsync((new ResultAsyncCallBack() { @Override public void result(Boolean bean) { // do some action } });realizando insercao de modo assincrono DeleteBuilder delete = persistence.deleteBuilder(SimpleQueryBuilder.class); delete.whereEq(Constant.INDEX, ONE_HUNDRED_TWO).whereEq(Constant.KEY, ONE_HUNDRED_TWO).execute(); DeleteBuilder delete2 = persistence.deleteBuilder(SimpleQueryBuilder.class,"map", "list", "set"); //Delete specific columns delete2 .whereEq(Constant.INDEX, ONE_HUNDRED_TWO).whereEq(Constant.KEY, ONE_HUNDRED_TWO).execute();primeira query remove todas as colunas a partir da chave, na segunda query remove apenas os campos map, list e set. SimpleID id = new SimpleID(); id.setIndex(ONE_HUNDRED_TWO); id.setKey(ONE_HUNDRED_TWO); DeleteBuilder delete2 = persistence.deleteBuilder(SimpleQueryBuilder.class, id); delete2.executeAsync((new ResultAsyncCallBack() { @Override public void result(Boolean bean) { // do some action } }); remocao assincrona SelectBuilder select = persistence.selectBuilder(SimpleQueryBuilder.class); select.eq("name", "name"); select.in("index", ONE, TWO, THREE); List result = select.execute();Realizando o select em que o campo nome e igual a nome e o indice esta em um, dois e tres.SelectBuilder select = persistence.selectBuilder(SimpleQueryBuilder.class);select.eq(NAME, NAME).gt("index", THREE).asc(INDEX).executeAsync(new ResultAsyncCallBack>() { @Override public void result(List beans) { // do some thing } }); Executando query assincronamente em que o indece seja mais que tres e seja ordenado de forma descendente no indice.O Batch e um recurso no cassandra que permite que se execute alteracoes no banco (insercao, atualizacao e remocao) de forma atomica, desse forma se pode enviar insert, updates e deletes como se fosse apenas uma requisicao.DeleteBuilder delete = dao.deleteBuilder(); delete.whereEq(Constant.INDEX, Constant.ONE_HUNDRED_TWO) .whereEq(Constant.KEY, Constant.ONE_HUNDRED_TWO); InsertBuilder insert = dao.insertBuilder(); insert.value(Constant.KEY, Constant.ONE_HUNDRED).value(Constant.INDEX, Constant.ONE_HUNDRED); insert.value(Constant.LIST_COLUMN, Arrays.asList("Poliana", "Otavio", "Love")); UpdateBuilder update = dao.update(); update.whereEq(Constant.KEY, Constant.ONE).whereEq(Constant.INDEX, Constant.ONE); update.addList("list", "otavioList"); BatchBuilder batchBuilder = dao.batchBuilder(); batchBuilder.addOperations(delete, insert, update); batchBuilder.executeAsync(new ResultAsyncCallBack() { @Override public void result(Boolean bean) { // do some action } });Executando processo de insercao, remocao e atualizacao de forma atomica com o BatchBuilder.Vale lembrar que recurso do Batch deve ser usados em casos especificos, ja que distribuir as requisicoes entre os nos, no cassandra, sempre sera sua melhor amiga.Esse artigo tem como objetivo ilustrar as mudancas dentro do Easy-Cassandra, se demonstrou dos recursos