Knowing more about Easy-Cassandra Project
Features
- An ORM easy to use in Cassandra
- Need only use some Annotations in a class to persist
- Persists many Java Objects in way extremely easy (e.g: all primitives types, java.Lang.String, java.lang.BigDecimal, java.io.File, etc.).
- Read and Write in Cassandra with Level Consistency.
- The first framework ORM in Cassandra to compatives with version above 0.8.0.
- The first to use CQL
- compatible with CQL 2.0
- The first to use invokedynamic instead to reflection
- In the Apache version 2.0 license
Java Objects Supported
- all primitives types (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
About Versions
The current and stable version is 1.0.7
Version: 1.0.7
- update cassandra-thrift to 1.0.7
Version: 1.0.6
- Fixes bug with File
- Support Calendar interface
Version: 1.0.5
- Can now store files
- Support java.io.File and java.nio.file.Path
Version: 1.0.4
- more performance
- less memory
- now is supported all primitives types
- now is supported Byte, character, Short, BigInteger and BigDecimal
Version: 1.0.3
- Fixes bug with result
- update for Thrift 1.0.6
- Log now using java.util.loggin
Version: 1.0.2
- Fixes bug with Boolean's Object
- Now the Cassandra's lib is supported this way is possible use every Cassandra above of the version 0.8.0
Version: 1.0.1
- Allowed use ColumnValue and ColumnFamilyValue in default mode this way its get the field's name
- Fixes bug in Reflection
Beyond version
- Call exception when there are not neither Index Key nor Key Value in the class
- Select Key from 'in' CQL command
- Create automatically the ColumnFamily in Run Time
- Create automatically the IndexValue in Run Time
- Suport with cql 2.0
- Support with one and more Index
- Feed Object with Cassandra Query Language
Example: List<Person> persons= cassandraQuery.executeQuery("select * from Person").getResultList();
Simple Sample
For use this recourse is very simple like sample bellow:
@ColumnFamilyValue(nome = "person")
<font color="#000000"><font size="2" style="font-size: 9pt"><b>public</b> <b>class</b> Person <b>implements</b> <font color="#003399">Serializable <font color="#009900">{</font> </font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>private</b> <b>static</b> <b>final</b> <font color="#000066"><b>long</b> serialVersionUID <font color="#339933">=</font> 3L<font color="#339933">;</font></font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt">@KeyValue<font color="#009900">(auto<font color="#339933">=</font><font color="#000066"><b>false</b></font><font color="#009900">)</font></font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>private</b> <font color="#003399">Long id<font color="#339933">;</font></font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt">@IndexValue</font></font>
<font color="#000000"><font size="2" style="font-size: 9pt">@ColumnValue<font color="#009900">(nome <font color="#339933">=</font> <font color="#0000ff">"name"</font><font color="#009900">)</font></font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>private</b> <font color="#003399">String name<font color="#339933">;</font> </font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt">@ColumnValue<font color="#009900">(nome <font color="#339933">=</font> <font color="#0000ff">"year"</font><font color="#009900">)</font></font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>private</b> <font color="#003399">Integer year<font color="#339933">;</font></font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt">@EnumeratedValue<font color="#009900">(nome<font color="#339933">=</font><font color="#0000ff">"sex"</font><font color="#009900">)</font></font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>private</b> Sex sex<font color="#339933">;</font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt">@EmbeddedValue</font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>private</b> Address address<font color="#339933">;</font></font></font>
<font color="#666666"><font size="2" style="font-size: 9pt"><i>//getter and setter</i></font></font>
<font color="#009900"><font size="2" style="font-size: 9pt">}</font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>public</b> <b>class</b> PersonDAO <font color="#009900">{</font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>private</b> Persistence persistence<font color="#339933">;</font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>public</b> PersonDAO<font color="#009900">() <font color="#009900">{</font></font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt">persistence <font color="#339933">= EasyCassandraManager.<font color="#006633">getPersistence</font><font color="#009900">(</font><font color="#0000ff">"javabahia"</font>, <font color="#0000ff">"localhost"</font>, <font color="#cc66cc">9160</font><font color="#009900">)</font><font color="#339933">;</font></font></font></font>
<font color="#009900"><font size="2" style="font-size: 9pt">}</font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>public</b> <font color="#000066"><b>void</b> create<font color="#009900">(</font>Person bean<font color="#009900">)</font> <font color="#009900">{</font></font></font></font>
<font color="#000000"> <font size="2" style="font-size: 9pt">persistence.</font><font color="#006633"><font size="2" style="font-size: 9pt">insert</font></font><font color="#009900"><font size="2" style="font-size: 9pt">(</font></font><font size="2" style="font-size: 9pt">bean</font><font color="#009900"><font size="2" style="font-size: 9pt">)</font></font><font color="#339933"><font size="2" style="font-size: 9pt">;</font></font></font>
<font color="#009900"><font size="2" style="font-size: 9pt">}</font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>public</b> <font color="#000066"><b>void</b> remove<font color="#009900">(</font>Person bean<font color="#009900">)</font> <font color="#009900">{</font></font></font></font>
<font color="#000000"> <font size="2" style="font-size: 9pt">persistence.</font><font color="#006633"><font size="2" style="font-size: 9pt">delete</font></font><font color="#009900"><font size="2" style="font-size: 9pt">(</font></font><font size="2" style="font-size: 9pt">bean</font><font color="#009900"><font size="2" style="font-size: 9pt">)</font></font><font color="#339933"><font size="2" style="font-size: 9pt">;</font></font></font>
<font color="#009900"><font size="2" style="font-size: 9pt">}</font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>public</b> <font color="#000066"><b>void</b> remove<font color="#009900">(</font><font color="#003399">Long</font> id<font color="#009900">){</font></font></font></font>
<font color="#000000"> <font size="2" style="font-size: 9pt">persistence.</font><font color="#006633"><font size="2" style="font-size: 9pt">deleteByKeyValue</font></font><font color="#009900"><font size="2" style="font-size: 9pt">(</font></font><font size="2" style="font-size: 9pt">id, Person.</font><font size="2" style="font-size: 9pt"><b>class</b></font><font color="#009900"><font size="2" style="font-size: 9pt">)</font></font><font color="#339933"><font size="2" style="font-size: 9pt">;</font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><font color="#009900">} </font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>public</b> <font color="#000066"><b>void</b> update<font color="#009900">(</font>Person bean<font color="#009900">)</font> <font color="#009900">{</font></font></font></font>
<font color="#000000"> <font size="2" style="font-size: 9pt">persistence.</font><font color="#006633"><font size="2" style="font-size: 9pt">update</font></font><font color="#009900"><font size="2" style="font-size: 9pt">(</font></font><font size="2" style="font-size: 9pt">bean</font><font color="#009900"><font size="2" style="font-size: 9pt">)</font></font><font color="#339933"><font size="2" style="font-size: 9pt">;</font></font></font>
<font color="#009900"><font size="2" style="font-size: 9pt">}</font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>public</b> Person retrieve<font color="#009900">(<font color="#003399">Object</font> id<font color="#009900">)</font> <font color="#009900">{</font></font></font></font>
<font color="#000000"> <font size="2" style="font-size: 9pt"><b>return</b></font><font color="#009900"><font size="2" style="font-size: 9pt">(</font></font><font size="2" style="font-size: 9pt">Person</font><font color="#009900"><font size="2" style="font-size: 9pt">)</font></font><font size="2" style="font-size: 9pt"> persistence.</font><font color="#006633"><font size="2" style="font-size: 9pt">findByKey</font></font><font color="#009900"><font size="2" style="font-size: 9pt">(</font></font><font size="2" style="font-size: 9pt">id, Person.</font><font size="2" style="font-size: 9pt"><b>class</b></font><font color="#009900"><font size="2" style="font-size: 9pt">)</font></font><font color="#339933"><font size="2" style="font-size: 9pt">;</font></font></font>
<font color="#009900"><font size="2" style="font-size: 9pt">}</font></font>
<font color="#000000"><font size="2" style="font-size: 9pt">@SuppressWarnings<font color="#009900">(<font color="#0000ff">"unchecked"</font><font color="#009900">)</font></font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>public</b> <font color="#003399">List listAll<font color="#009900">()</font> <font color="#009900">{</font></font></font></font>
<font color="#000000"> <font size="2" style="font-size: 9pt"><b>return</b></font><font size="2" style="font-size: 9pt"> persistence.</font><font color="#006633"><font size="2" style="font-size: 9pt">findAll</font></font><font color="#009900"><font size="2" style="font-size: 9pt">(</font></font><font size="2" style="font-size: 9pt">Person.</font><font size="2" style="font-size: 9pt"><b>class</b></font><font color="#009900"><font size="2" style="font-size: 9pt">)</font></font><font color="#339933"><font size="2" style="font-size: 9pt">;</font></font></font>
<font color="#009900"><font size="2" style="font-size: 9pt">}</font></font>
<font color="#000000"><font size="2" style="font-size: 9pt">@SuppressWarnings<font color="#009900">(<font color="#0000ff">"unchecked"</font><font color="#009900">)</font></font></font></font>
<font color="#000000"><font size="2" style="font-size: 9pt"><b>public</b> <font color="#003399">List listByIndex<font color="#009900">(</font><font color="#003399">Object</font> index<font color="#009900">)</font> <font color="#009900">{</font></font></font></font>
<font color="#000000"> <font size="2" style="font-size: 9pt"><b>return</b></font><font size="2" style="font-size: 9pt"> persistence.</font><font color="#006633"><font size="2" style="font-size: 9pt">findByIndex</font></font><font color="#009900"><font size="2" style="font-size: 9pt">(</font></font><font size="2" style="font-size: 9pt">index, Person.</font><font size="2" style="font-size: 9pt"><b>class</b></font><font color="#009900"><font size="2" style="font-size: 9pt">)</font></font><font color="#339933"><font size="2" style="font-size: 9pt">;</font></font></font>
<font color="#009900"><font size="2" style="font-size: 9pt">}</font></font>
<font color="#009900"><font size="2" style="font-size: 9pt">}</font></font>
Sample of DAO performing call for the Cassandra
More information
If you would like do question about, contribute, share experience, do anything for the project. Do part of Group in Google Groups: https://groups.google.com/group/easy-cassandra/
- Login or register to post comments
- Printer-friendly version
- otaviojava's blog
- 1784 reads





