@Override public <T> T selectOne(Query query, Class<T> entityClass) throws DataAccessException { List<T> result = select(query, entityClass); return result.isEmpty() ? null : result.get(0); }
@Override public <T> T selectOne(Statement statement, Class<T> entityClass) { return select(statement, entityClass).stream().findFirst().orElse(null); }
@Override public <T> List<T> select(String cql, Class<T> entityClass) { Assert.hasText(cql, "Statement must not be empty"); return select(new SimpleStatement(cql), entityClass); }
@Test public void testExpressionTruncate() { Message<Book> message = MessageBuilder.withPayload(BookSampler.getBook()).build(); this.cassandraMessageHandler1.send(message); Select select = QueryBuilder.select().all().from("book"); List<Book> books = this.cassandraTemplate.select(select, Book.class); assertThat(books).hasSize(1); this.cassandraMessageHandler4.send(MessageBuilder.withPayload("Empty").build()); books = this.cassandraTemplate.select(select, Book.class); assertThat(books).hasSize(0); }
@Test public void testCassandraBatchIngest() { List<Book> books = BookSampler.getBookList(5); List<List<?>> ingestBooks = new ArrayList<>(); for (Book b : books) { List<Object> l = new ArrayList<>(); l.add(b.getIsbn()); l.add(b.getTitle()); l.add(b.getAuthor()); l.add(b.getPages()); l.add(b.getSaleDate()); l.add(b.isInStock()); ingestBooks.add(l); } Message<List<List<?>>> message = MessageBuilder.withPayload(ingestBooks).build(); this.cassandraMessageHandler3.send(message); Select select = QueryBuilder.select().all().from("book"); books = this.cassandraTemplate.select(select, Book.class); assertThat(books).hasSize(5); this.cassandraTemplate.batchOps().delete(books); }
@Test public void testBasicCassandraInsert() { Book b1 = BookSampler.getBook(); Message<Book> message = MessageBuilder.withPayload(b1).build(); this.cassandraMessageHandler1.send(message); Select select = QueryBuilder.select().all().from("book"); List<Book> books = this.cassandraTemplate.select(select, Book.class); assertThat(books).hasSize(1); this.cassandraTemplate.delete(b1); }