use of jakarta.nosql.Value in project jnosql-diana-driver by eclipse.
the class DefaultHazelcastBucketManager method sql.
@Override
public Collection<Value> sql(String query, Map<String, Object> params) throws NullPointerException {
requireNonNull(query, "sql is required");
requireNonNull(params, "params is required");
final StringBuilder finalQuery = new StringBuilder(query);
final Consumer<Map.Entry<String, Object>> consumer = e -> {
String key = ":" + e.getKey();
int indexOf = query.indexOf(key);
finalQuery.replace(indexOf, indexOf + key.length(), e.getValue().toString());
};
params.entrySet().forEach(consumer);
return sql(new SqlPredicate(finalQuery.toString()));
}
use of jakarta.nosql.Value in project jnosql-diana-driver by eclipse.
the class HazelcastBucketManagerQueryTest method shouldReturnActiveAndGreaterThan2000Predicate.
@Test
public void shouldReturnActiveAndGreaterThan2000Predicate() {
Predicate predicate = and(equal("active", false), greaterEqual("year", 1990));
Collection<Value> result = bucketManager.sql(predicate);
assertEquals(2, result.size());
}
use of jakarta.nosql.Value in project jnosql-diana by eclipse.
the class DelQueryParser method prepare.
public KeyValuePreparedStatement prepare(String query, BucketManager manager) {
DelQuery delQuery = provider.apply(query);
Params params = Params.newParams();
List<Value> values = delQuery.getKeys().stream().map(k -> Values.getValue(k, params)).collect(toList());
return DefaultKeyValuePreparedStatement.del(values, manager, params, query);
}
use of jakarta.nosql.Value in project jnosql-diana by eclipse.
the class DelQueryParser method query.
Stream<Value> query(String query, BucketManager manager) {
DelQuery delQuery = provider.apply(query);
Params params = Params.newParams();
List<Value> values = delQuery.getKeys().stream().map(k -> Values.getValue(k, params)).collect(toList());
if (params.isNotEmpty()) {
throw new QueryException("To run a query with a parameter use a PrepareStatement instead.");
}
List<Object> keys = values.stream().map(Value::get).collect(toList());
manager.delete(keys);
return Stream.empty();
}
use of jakarta.nosql.Value in project jnosql-diana by eclipse.
the class PutQueryParser method query.
Stream<Value> query(String query, BucketManager manager) {
PutQuery putQuery = provider.apply(query);
Params params = Params.newParams();
Value key = Values.getValue(putQuery.getKey(), params);
Value value = Values.getValue(putQuery.getValue(), params);
Optional<Duration> ttl = putQuery.getTtl();
if (params.isNotEmpty()) {
throw new QueryException("To run a query with a parameter use a PrepareStatement instead.");
}
KeyValueEntity entity = KeyValueEntity.of(key.get(), value.get());
if (ttl.isPresent()) {
manager.put(entity, ttl.get());
} else {
manager.put(entity);
}
return Stream.empty();
}
Aggregations