Search in sources :

Example 1 with UpdateQuery

use of jakarta.nosql.query.UpdateQuery in project jnosql-diana by eclipse.

the class UpdateQueryParser method prepare.

ColumnPreparedStatement prepare(String query, ColumnFamilyManager manager, ColumnObserverParser observer) {
    Params params = Params.newParams();
    UpdateQuery updateQuery = updateQueryProvider.apply(query);
    ColumnEntity entity = getEntity(params, updateQuery, observer);
    return DefaultColumnPreparedStatement.update(entity, params, query, manager);
}
Also used : ColumnEntity(jakarta.nosql.column.ColumnEntity) Params(jakarta.nosql.Params) UpdateQuery(jakarta.nosql.query.UpdateQuery)

Example 2 with UpdateQuery

use of jakarta.nosql.query.UpdateQuery in project jnosql-diana by eclipse.

the class UpdateQueryParser method query.

Stream<DocumentEntity> query(String query, DocumentCollectionManager collectionManager, DocumentObserverParser observer) {
    UpdateQuery updateQuery = supplier.apply(query);
    Params params = Params.newParams();
    DocumentEntity entity = getEntity(params, updateQuery, observer);
    if (params.isNotEmpty()) {
        throw new QueryException("To run a query with a parameter use a PrepareStatement instead.");
    }
    return Stream.of(collectionManager.update(entity));
}
Also used : QueryException(jakarta.nosql.QueryException) DocumentEntity(jakarta.nosql.document.DocumentEntity) UpdateQuery(jakarta.nosql.query.UpdateQuery) Params(jakarta.nosql.Params)

Example 3 with UpdateQuery

use of jakarta.nosql.query.UpdateQuery in project jnosql-diana by eclipse.

the class UpdateQueryParser method prepare.

DocumentPreparedStatement prepare(String query, DocumentCollectionManager collectionManager, DocumentObserverParser observer) {
    Params params = Params.newParams();
    UpdateQuery updateQuery = supplier.apply(query);
    DocumentEntity entity = getEntity(params, updateQuery, observer);
    return DefaultDocumentPreparedStatement.update(entity, params, query, collectionManager);
}
Also used : DocumentEntity(jakarta.nosql.document.DocumentEntity) Params(jakarta.nosql.Params) UpdateQuery(jakarta.nosql.query.UpdateQuery)

Example 4 with UpdateQuery

use of jakarta.nosql.query.UpdateQuery in project jnosql-diana by eclipse.

the class UpdateQueryProviderTest method shouldReturnParserQuery3.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "update God (siblings = {\"Apollo\": \"Brother\", \"Zeus\": \"Father\"})" })
public void shouldReturnParserQuery3(String query) {
    UpdateQuery updateQuery = checkUpdateFromStart(query);
    List<Condition> conditions = updateQuery.getConditions();
    assertEquals(1, conditions.size());
    Condition condition = conditions.get(0);
    assertEquals("siblings", condition.getName());
    assertEquals(Operator.EQUALS, condition.getOperator());
    QueryValue<?> value = condition.getValue();
    assertTrue(value instanceof JSONQueryValue);
    JsonObject jsonObject = JSONQueryValue.class.cast(value).get();
    assertEquals("Brother", jsonObject.getString("Apollo"));
    assertEquals("Father", jsonObject.getString("Zeus"));
}
Also used : Condition(jakarta.nosql.query.Condition) UpdateQuery(jakarta.nosql.query.UpdateQuery) JsonObject(javax.json.JsonObject) JSONQueryValue(jakarta.nosql.query.JSONQueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 5 with UpdateQuery

use of jakarta.nosql.query.UpdateQuery in project jnosql-diana by eclipse.

the class UpdateQueryProviderTest method shouldReturnParserQuery6.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "update God (age = 30, name = \"Artemis\")" })
public void shouldReturnParserQuery6(String query) {
    UpdateQuery updateQuery = checkUpdateFromStart(query);
    List<Condition> conditions = updateQuery.getConditions();
    assertEquals(2, conditions.size());
    Condition condition = conditions.get(0);
    assertEquals("age", condition.getName());
    assertEquals(Operator.EQUALS, condition.getOperator());
    QueryValue<?> value = condition.getValue();
    assertTrue(value instanceof NumberQueryValue);
    assertEquals(30L, NumberQueryValue.class.cast(value).get());
    condition = conditions.get(1);
    assertEquals("name", condition.getName());
    assertEquals(Operator.EQUALS, condition.getOperator());
    value = condition.getValue();
    assertTrue(value instanceof StringQueryValue);
    assertEquals("Artemis", StringQueryValue.class.cast(value).get());
}
Also used : Condition(jakarta.nosql.query.Condition) NumberQueryValue(jakarta.nosql.query.NumberQueryValue) UpdateQuery(jakarta.nosql.query.UpdateQuery) StringQueryValue(jakarta.nosql.query.StringQueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

UpdateQuery (jakarta.nosql.query.UpdateQuery)14 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)9 ValueSource (org.junit.jupiter.params.provider.ValueSource)9 Condition (jakarta.nosql.query.Condition)7 Params (jakarta.nosql.Params)4 JsonObject (javax.json.JsonObject)4 JSONQueryValue (jakarta.nosql.query.JSONQueryValue)3 NumberQueryValue (jakarta.nosql.query.NumberQueryValue)3 QueryException (jakarta.nosql.QueryException)2 ColumnEntity (jakarta.nosql.column.ColumnEntity)2 DocumentEntity (jakarta.nosql.document.DocumentEntity)2 StringQueryValue (jakarta.nosql.query.StringQueryValue)2 Function (jakarta.nosql.query.Function)1 FunctionQueryValue (jakarta.nosql.query.FunctionQueryValue)1 ParamQueryValue (jakarta.nosql.query.ParamQueryValue)1 JsonArray (javax.json.JsonArray)1