Search in sources :

Example 16 with ColumnCondition

use of org.jnosql.diana.api.column.ColumnCondition in project jnosql-diana-driver by eclipse.

the class QueryUtils method createClause.

private static void createClause(Optional<ColumnCondition> columnConditionOptional, List<Clause> clauses) {
    if (!columnConditionOptional.isPresent()) {
        return;
    }
    ColumnCondition columnCondition = columnConditionOptional.get();
    Column column = columnCondition.getColumn();
    Condition condition = columnCondition.getCondition();
    Object value = column.getValue().get();
    switch(condition) {
        case EQUALS:
            clauses.add(QueryBuilder.eq(getName(column), value));
            return;
        case GREATER_THAN:
            clauses.add(QueryBuilder.gt(getName(column), value));
            return;
        case GREATER_EQUALS_THAN:
            clauses.add(QueryBuilder.gte(getName(column), value));
            return;
        case LESSER_THAN:
            clauses.add(QueryBuilder.lt(getName(column), value));
            return;
        case LESSER_EQUALS_THAN:
            clauses.add(QueryBuilder.lte(getName(column), value));
            return;
        case IN:
            clauses.add(QueryBuilder.in(getName(column), getIinValue(value)));
            return;
        case LIKE:
            clauses.add(QueryBuilder.like(getName(column), value));
            return;
        case AND:
            for (ColumnCondition cc : column.get(new TypeReference<List<ColumnCondition>>() {
            })) {
                createClause(Optional.of(cc), clauses);
            }
            return;
        case OR:
        default:
            throw new UnsupportedOperationException("The columnCondition " + condition + " is not supported in cassandra column driver");
    }
}
Also used : ColumnCondition(org.jnosql.diana.api.column.ColumnCondition) Condition(org.jnosql.diana.api.Condition) Column(org.jnosql.diana.api.column.Column) ArrayList(java.util.ArrayList) List(java.util.List) ColumnCondition(org.jnosql.diana.api.column.ColumnCondition)

Example 17 with ColumnCondition

use of org.jnosql.diana.api.column.ColumnCondition in project jnosql-diana-driver by eclipse.

the class HBaseColumnFamilyManager method delete.

@Override
public void delete(ColumnDeleteQuery query) {
    Objects.requireNonNull(query, "query is required");
    ColumnCondition condition = query.getCondition().orElseThrow(() -> new IllegalArgumentException("Condition is required"));
    checkedCondition(condition);
    List<String> values = new ArrayList<>();
    convert(condition, values);
    List<Delete> deletes = values.stream().map(String::getBytes).map(Delete::new).collect(toList());
    try {
        table.delete(deletes);
    } catch (IOException e) {
        throw new DianaHBaseException("An error when try to delete columns", e);
    }
}
Also used : Delete(org.apache.hadoop.hbase.client.Delete) ArrayList(java.util.ArrayList) IOException(java.io.IOException) ColumnCondition(org.jnosql.diana.api.column.ColumnCondition)

Example 18 with ColumnCondition

use of org.jnosql.diana.api.column.ColumnCondition in project jnosql-diana by eclipse.

the class DefaultDeleteQueryBuilderTest method shouldSelectWhereNameGt.

@Test
public void shouldSelectWhereNameGt() {
    String columnFamily = "columnFamily";
    Number value = 10;
    ColumnDeleteQuery query = delete().from(columnFamily).where("name").gt(value).build();
    ColumnCondition condition = query.getCondition().get();
    Column column = condition.getColumn();
    assertTrue(query.getColumns().isEmpty());
    assertEquals(columnFamily, query.getColumnFamily());
    assertEquals(Condition.GREATER_THAN, condition.getCondition());
    assertEquals("name", column.getName());
    assertEquals(value, column.get());
}
Also used : Column(org.jnosql.diana.api.column.Column) ColumnCondition(org.jnosql.diana.api.column.ColumnCondition) ColumnDeleteQuery(org.jnosql.diana.api.column.ColumnDeleteQuery) Test(org.junit.jupiter.api.Test)

Example 19 with ColumnCondition

use of org.jnosql.diana.api.column.ColumnCondition in project jnosql-diana by eclipse.

the class DefaultDeleteQueryBuilderTest method shouldSelectWhereNameEq.

@Test
public void shouldSelectWhereNameEq() {
    String columnFamily = "columnFamily";
    String name = "Ada Lovelace";
    ColumnDeleteQuery query = delete().from(columnFamily).where("name").eq(name).build();
    ColumnCondition condition = query.getCondition().get();
    Column column = condition.getColumn();
    assertTrue(query.getColumns().isEmpty());
    assertEquals(columnFamily, query.getColumnFamily());
    assertEquals(Condition.EQUALS, condition.getCondition());
    assertEquals("name", column.getName());
    assertEquals(name, column.get());
}
Also used : Column(org.jnosql.diana.api.column.Column) ColumnCondition(org.jnosql.diana.api.column.ColumnCondition) ColumnDeleteQuery(org.jnosql.diana.api.column.ColumnDeleteQuery) Test(org.junit.jupiter.api.Test)

Example 20 with ColumnCondition

use of org.jnosql.diana.api.column.ColumnCondition in project jnosql-diana by eclipse.

the class DefaultDeleteQueryBuilderTest method shouldSelectWhereNameLte.

@Test
public void shouldSelectWhereNameLte() {
    String columnFamily = "columnFamily";
    Number value = 10;
    ColumnDeleteQuery query = delete().from(columnFamily).where("name").lte(value).build();
    ColumnCondition columnCondition = query.getCondition().get();
    Column column = columnCondition.getColumn();
    assertTrue(query.getColumns().isEmpty());
    assertEquals(columnFamily, query.getColumnFamily());
    assertEquals(Condition.LESSER_EQUALS_THAN, columnCondition.getCondition());
    assertEquals("name", column.getName());
    assertEquals(value, column.get());
}
Also used : Column(org.jnosql.diana.api.column.Column) ColumnCondition(org.jnosql.diana.api.column.ColumnCondition) ColumnDeleteQuery(org.jnosql.diana.api.column.ColumnDeleteQuery) Test(org.junit.jupiter.api.Test)

Aggregations

ColumnCondition (org.jnosql.diana.api.column.ColumnCondition)69 Test (org.junit.jupiter.api.Test)46 Column (org.jnosql.diana.api.column.Column)29 ColumnQuery (org.jnosql.diana.api.column.ColumnQuery)29 ColumnDeleteQuery (org.jnosql.diana.api.column.ColumnDeleteQuery)23 List (java.util.List)20 Person (org.jnosql.artemis.model.Person)13 Collections.singletonList (java.util.Collections.singletonList)7 Pagination (org.jnosql.artemis.Pagination)7 Condition (org.jnosql.diana.api.Condition)7 Sort (org.jnosql.diana.api.Sort)7 Proxy (java.lang.reflect.Proxy)6 Duration (java.time.Duration)6 Optional (java.util.Optional)6 Consumer (java.util.function.Consumer)6 Inject (javax.inject.Inject)6 CDIExtension (org.jnosql.artemis.CDIExtension)6 Converters (org.jnosql.artemis.Converters)6 DynamicQueryException (org.jnosql.artemis.DynamicQueryException)6 RepositoryAsync (org.jnosql.artemis.RepositoryAsync)6