Search in sources :

Example 1 with SuperRow

use of me.prettyprint.hector.api.beans.SuperRow in project gora by apache.

the class CassandraStore method addSuperColumns.

/**
   * When we add supercolumns, Gora keys are mapped to Cassandra partition keys only. 
   * This is because we follow the Cassandra logic where column family data is 
   * partitioned across nodes based on row Key.
   */
private void addSuperColumns(String family, CassandraQuery<K, T> cassandraQuery, CassandraResultSet<K> cassandraResultSet) {
    List<SuperRow<K, String, ByteBuffer, ByteBuffer>> superRows = this.cassandraClient.executeSuper(cassandraQuery, family);
    for (SuperRow<K, String, ByteBuffer, ByteBuffer> superRow : superRows) {
        K key = superRow.getKey();
        CassandraRow<K> cassandraRow = cassandraResultSet.getRow(key);
        if (cassandraRow == null) {
            cassandraRow = new CassandraRow<>();
            cassandraResultSet.putRow(key, cassandraRow);
            cassandraRow.setKey(key);
        }
        SuperSlice<String, ByteBuffer, ByteBuffer> superSlice = superRow.getSuperSlice();
        for (HSuperColumn<String, ByteBuffer, ByteBuffer> hSuperColumn : superSlice.getSuperColumns()) {
            CassandraSuperColumn cassandraSuperColumn = new CassandraSuperColumn();
            cassandraSuperColumn.setValue(hSuperColumn);
            cassandraSuperColumn.setFamily(family);
            cassandraRow.add(cassandraSuperColumn);
        }
    }
}
Also used : SuperRow(me.prettyprint.hector.api.beans.SuperRow) CassandraSuperColumn(org.apache.gora.cassandra.query.CassandraSuperColumn) ByteBuffer(java.nio.ByteBuffer)

Aggregations

ByteBuffer (java.nio.ByteBuffer)1 SuperRow (me.prettyprint.hector.api.beans.SuperRow)1 CassandraSuperColumn (org.apache.gora.cassandra.query.CassandraSuperColumn)1