use of jakarta.nosql.Params in project jnosql-diana by eclipse.
the class DeleteQueryParser method apply.
@Override
public ColumnDeleteQueryParams apply(DeleteQuery deleteQuery, ColumnObserverParser columnObserverParser) {
requireNonNull(deleteQuery, "deleteQuery is required");
requireNonNull(columnObserverParser, "columnObserverParser is required");
Params params = Params.newParams();
ColumnDeleteQuery query = getQuery(params, columnObserverParser, deleteQuery);
return new DefaultColumnDeleteQueryParams(query, params);
}
use of jakarta.nosql.Params in project jnosql-diana by eclipse.
the class SelectQueryParser method prepare.
ColumnPreparedStatement prepare(String query, ColumnFamilyManager manager, ColumnObserverParser observer) {
Params params = Params.newParams();
SelectQuery selectQuery = selectQueryProvider.apply(query);
ColumnQuery columnQuery = getColumnQuery(params, selectQuery, observer);
return DefaultColumnPreparedStatement.select(columnQuery, params, query, manager);
}
use of jakarta.nosql.Params in project jnosql-diana by eclipse.
the class UpdateQueryParser method query.
Stream<ColumnEntity> query(String query, ColumnFamilyManager manager, ColumnObserverParser observer) {
UpdateQuery updateQuery = updateQueryProvider.apply(query);
Params params = Params.newParams();
ColumnEntity 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(manager.update(entity));
}
use of jakarta.nosql.Params in project jnosql-diana by eclipse.
the class InsertQueryParser method query.
Stream<ColumnEntity> query(String query, ColumnFamilyManager manager, ColumnObserverParser observer) {
InsertQuery insertQuery = insertQueryProvider.apply(query);
String columnFamily = insertQuery.getEntity();
Params params = Params.newParams();
ColumnEntity entity = getEntity(insertQuery, columnFamily, params, observer);
Optional<Duration> ttl = insertQuery.getTtl();
if (params.isNotEmpty()) {
throw new QueryException("To run a query with a parameter use a PrepareStatement instead.");
}
if (ttl.isPresent()) {
return Stream.of(manager.insert(entity, ttl.get()));
} else {
return Stream.of(manager.insert(entity));
}
}
use of jakarta.nosql.Params in project jnosql-diana by eclipse.
the class ParamsBinderTest method shouldConvert.
@Test
public void shouldConvert() {
Method method = Stream.of(PersonRepository.class.getMethods()).filter(m -> m.getName().equals("findByAge")).findFirst().get();
ClassMapping classMapping = mappings.get(Person.class);
RepositoryDocumentObserverParser parser = new RepositoryDocumentObserverParser(classMapping);
paramsBinder = new ParamsBinder(classMapping, converters);
SelectMethodProvider selectMethodFactory = SelectMethodProvider.get();
SelectQuery selectQuery = selectMethodFactory.apply(method, classMapping.getName());
SelectQueryConverter converter = ServiceLoaderProvider.get(SelectQueryConverter.class);
DocumentQueryParams columnQueryParams = converter.apply(selectQuery, parser);
Params params = columnQueryParams.getParams();
Object[] args = { 10 };
paramsBinder.bind(params, args, method);
DocumentQuery query = columnQueryParams.getQuery();
DocumentCondition columnCondition = query.getCondition().get();
Value value = columnCondition.getDocument().getValue();
assertEquals(10, value.get());
}
Aggregations