Search in sources :

Example 1 with CassandraResultSet

use of org.apache.gora.cassandra.query.CassandraResultSet in project gora by apache.

the class NativeSerializer method execute.

/**
 * {@inheritDoc}
 *
 * @param dataStore
 * @param query
 * @return
 */
@Override
public org.apache.gora.query.Result execute(DataStore dataStore, Query query) throws GoraException {
    try {
        List<Object> objectArrayList = new ArrayList<>();
        String[] fields = query.getFields();
        if (fields != null) {
            fields = (String[]) ArrayUtils.addAll(fields, mapping.getAllKeys());
        } else {
            fields = mapping.getAllFieldsIncludingKeys();
        }
        CassandraResultSet<K, T> cassandraResult = new CassandraResultSet<>(dataStore, query);
        String cqlQuery = CassandraQueryFactory.getExecuteQuery(mapping, query, objectArrayList, fields);
        ResultSet results;
        if (objectArrayList.size() == 0) {
            results = client.getSession().execute(cqlQuery);
        } else {
            results = client.getSession().execute(cqlQuery, objectArrayList.toArray());
        }
        Result<T> objects = mapper.map(results);
        Iterator iterator = objects.iterator();
        while (iterator.hasNext()) {
            T result = (T) iterator.next();
            K key = getKey(result);
            cassandraResult.addResultElement(key, result);
        }
        return cassandraResult;
    } catch (Exception e) {
        throw new GoraException(e);
    }
}
Also used : ArrayList(java.util.ArrayList) GoraException(org.apache.gora.util.GoraException) GoraException(org.apache.gora.util.GoraException) CassandraResultSet(org.apache.gora.cassandra.query.CassandraResultSet) ResultSet(com.datastax.driver.core.ResultSet) Iterator(java.util.Iterator) CassandraResultSet(org.apache.gora.cassandra.query.CassandraResultSet)

Example 2 with CassandraResultSet

use of org.apache.gora.cassandra.query.CassandraResultSet in project gora by apache.

the class AvroSerializer method execute.

/**
 * {@inheritDoc}
 *
 * @param dataStore
 * @param query
 * @return
 */
@Override
public Result execute(DataStore dataStore, Query query) throws GoraException {
    try {
        List<Object> objectArrayList = new ArrayList<>();
        String[] fields = query.getFields();
        if (fields != null) {
            fields = (String[]) ArrayUtils.addAll(fields, mapping.getAllKeys());
        } else {
            fields = mapping.getAllFieldsIncludingKeys();
        }
        CassandraResultSet<K, T> cassandraResult = new CassandraResultSet<>(dataStore, query);
        String cqlQuery = CassandraQueryFactory.getExecuteQuery(mapping, query, objectArrayList, fields);
        ResultSet results;
        SimpleStatement statement;
        if (objectArrayList.size() == 0) {
            statement = new SimpleStatement(cqlQuery);
        } else {
            statement = new SimpleStatement(cqlQuery, objectArrayList.toArray());
        }
        if (readConsistencyLevel != null) {
            statement.setConsistencyLevel(ConsistencyLevel.valueOf(readConsistencyLevel));
        }
        results = client.getSession().execute(statement);
        Iterator<Row> iterator = results.iterator();
        ColumnDefinitions definitions = results.getColumnDefinitions();
        T obj;
        K keyObject;
        CassandraKey cassandraKey = mapping.getCassandraKey();
        while (iterator.hasNext()) {
            AbstractGettableData row = (AbstractGettableData) iterator.next();
            obj = cassandraDataStore.newPersistent();
            keyObject = cassandraDataStore.newKey();
            populateValuesToPersistent(row, definitions, obj, fields);
            if (cassandraKey != null) {
                populateValuesToPersistent(row, definitions, (PersistentBase) keyObject, cassandraKey.getFieldNames());
            } else {
                Field key = mapping.getInlinedDefinedPartitionKey();
                keyObject = (K) getValue(row, definitions.getType(key.getColumnName()), key.getColumnName(), null);
            }
            cassandraResult.addResultElement(keyObject, obj);
        }
        return cassandraResult;
    } catch (Exception e) {
        throw new GoraException(e);
    }
}
Also used : ColumnDefinitions(com.datastax.driver.core.ColumnDefinitions) AbstractGettableData(com.datastax.driver.core.AbstractGettableData) SimpleStatement(com.datastax.driver.core.SimpleStatement) ArrayList(java.util.ArrayList) CassandraKey(org.apache.gora.cassandra.bean.CassandraKey) GoraException(org.apache.gora.util.GoraException) Field(org.apache.gora.cassandra.bean.Field) GoraException(org.apache.gora.util.GoraException) ResultSet(com.datastax.driver.core.ResultSet) CassandraResultSet(org.apache.gora.cassandra.query.CassandraResultSet) CassandraResultSet(org.apache.gora.cassandra.query.CassandraResultSet) Row(com.datastax.driver.core.Row)

Aggregations

ResultSet (com.datastax.driver.core.ResultSet)2 ArrayList (java.util.ArrayList)2 CassandraResultSet (org.apache.gora.cassandra.query.CassandraResultSet)2 GoraException (org.apache.gora.util.GoraException)2 AbstractGettableData (com.datastax.driver.core.AbstractGettableData)1 ColumnDefinitions (com.datastax.driver.core.ColumnDefinitions)1 Row (com.datastax.driver.core.Row)1 SimpleStatement (com.datastax.driver.core.SimpleStatement)1 Iterator (java.util.Iterator)1 CassandraKey (org.apache.gora.cassandra.bean.CassandraKey)1 Field (org.apache.gora.cassandra.bean.Field)1