Java 8 and Scala Cassandra client.
Find a file
2015-03-27 20:14:13 -07:00
src add instantiator interface set default reflection instantiators 2015-03-26 21:02:48 -07:00
.gitignore added pom.xml 2015-03-14 10:22:57 -07:00
.travis-oss-settings.xml enable travis 2015-03-25 19:27:35 -07:00
.travis.yml update travis settings 2015-03-25 20:28:35 -07:00
eclipse-formatting.xml eclipse-formatting 2015-03-16 17:03:17 -07:00
LICENSE Initial commit 2015-02-26 12:42:59 -08:00
pom.xml Update pom.xml 2015-03-27 20:14:13 -07:00
README.md Update README.md 2015-03-25 23:01:45 -07:00

casser build

Java 8 Cassandra Client

Current status: Active development

Features

  • Leverages Java 8 language capabilities to build CQL queries
  • Simple function-style API
  • Reactive

Requirements

  • Only JVM 8
  • Datastax Driver
  • Maven

Example

Entity definition:

@Table("timelines")
public interface Timeline {

	@PartitionKey
	UUID getUserId();
	
	void setUserId(UUID uid);
	
	@ClusteringColumn
	@DataTypeName(Name.TIMEUUID)
	Date getTimestamp();
	
	void setTimestamp(Date ts);
	
	@Column
	String getText();
	
	void setText(String text);
}

Session initialization:

Timeline timeline = Casser.dsl(Timeline.class);
CasserSession session = Casser.init(getSession()).showCql().add(Timeline.class).autoCreateDrop().get();

Select information:

session.select(timeline::getUserId, timeline::getTimestamp, timeline::getText)
  .where(timeline::getUserId, "==", userId)
  .orderBy(timeline::getTimestamp, "desc").limit(5).sync()
  .forEach(System.out::println);

Insert information:

Timeline post = Casser.pojo(Timeline.class);
post.setUserId(userId);
post.setTimestamp(new Date(postTime+1000L*i));
post.setText("hello");
session.upsert(post).sync();