use of org.springframework.cloud.gcp.data.datastore.core.mapping.event.AfterQueryEvent in project spring-cloud-gcp by spring-cloud.
the class DatastoreTemplateTests method queryByExampleSimpleEntityTest.
@Test
public void queryByExampleSimpleEntityTest() {
EntityQuery.Builder builder = Query.newEntityQueryBuilder().setKind("test_kind");
StructuredQuery.CompositeFilter filter = StructuredQuery.CompositeFilter.and(PropertyFilter.eq("color", "simple_test_color"), PropertyFilter.eq("int_field", 1));
EntityQuery query = builder.setFilter(filter).build();
verifyBeforeAndAfterEvents(null, new AfterQueryEvent(Collections.emptyList(), query), () -> this.datastoreTemplate.queryByExample(Example.of(this.simpleTestEntity, ExampleMatcher.matching().withIgnorePaths("id")), null), x -> x.verify(this.datastore, times(1)).run(query));
}
use of org.springframework.cloud.gcp.data.datastore.core.mapping.event.AfterQueryEvent in project spring-cloud-gcp by spring-cloud.
the class DatastoreTemplate method keyQueryByExample.
@Override
public <T> Iterable<Key> keyQueryByExample(Example<T> example, DatastoreQueryOptions queryOptions) {
Query query = exampleToQuery(example, queryOptions, true);
Iterable<Key> results = () -> getDatastoreReadWriter().run(query);
maybeEmitEvent(new AfterQueryEvent(results, query));
return results;
}
use of org.springframework.cloud.gcp.data.datastore.core.mapping.event.AfterQueryEvent in project spring-cloud-gcp by spring-cloud.
the class DatastoreTemplate method query.
@Override
public <T> DatastoreResultsIterable<T> query(Query<? extends BaseEntity> query, Class<T> entityClass) {
QueryResults<? extends BaseEntity> results = getDatastoreReadWriter().run(query);
List<T> convertedResults = convertEntitiesForRead(results, entityClass);
maybeEmitEvent(new AfterQueryEvent(convertedResults, query));
return results != null ? new DatastoreResultsIterable<>(convertedResults, results.getCursorAfter()) : null;
}
use of org.springframework.cloud.gcp.data.datastore.core.mapping.event.AfterQueryEvent in project spring-cloud-gcp by spring-cloud.
the class DatastoreTemplate method queryKeys.
@Override
public Iterable<Key> queryKeys(Query<Key> query) {
Iterable<Key> keys = () -> getDatastoreReadWriter().run(query);
maybeEmitEvent(new AfterQueryEvent(keys, query));
return keys;
}
use of org.springframework.cloud.gcp.data.datastore.core.mapping.event.AfterQueryEvent in project spring-cloud-gcp by spring-cloud.
the class DatastoreTemplate method queryIterable.
@Override
public <A, T> DatastoreResultsIterable<T> queryIterable(Query<A> query, Function<A, T> entityFunc) {
QueryResults<A> results = getDatastoreReadWriter().run(query);
List resultsList = new ArrayList();
// cursor is not populated until we iterate
results.forEachRemaining(e -> {
resultsList.add(entityFunc.apply(e));
});
DatastoreResultsIterable<T> resultsIterable = new DatastoreResultsIterable<>(resultsList, results.getCursorAfter());
maybeEmitEvent(new AfterQueryEvent(resultsIterable, query));
return resultsIterable;
}
Aggregations