Search in sources :

Example 6 with AfterQueryEvent

use of com.google.cloud.spring.data.datastore.core.mapping.event.AfterQueryEvent in project spring-cloud-gcp by GoogleCloudPlatform.

the class DatastoreTemplateTests method queryByExampleSimpleEntityTest.

@Test
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));
}
Also used : StructuredQuery(com.google.cloud.datastore.StructuredQuery) AfterQueryEvent(com.google.cloud.spring.data.datastore.core.mapping.event.AfterQueryEvent) EntityQuery(com.google.cloud.datastore.EntityQuery) Test(org.junit.jupiter.api.Test)

Example 7 with AfterQueryEvent

use of com.google.cloud.spring.data.datastore.core.mapping.event.AfterQueryEvent in project spring-cloud-gcp by GoogleCloudPlatform.

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;
}
Also used : AfterQueryEvent(com.google.cloud.spring.data.datastore.core.mapping.event.AfterQueryEvent) ArrayList(java.util.ArrayList) List(java.util.List) ArrayList(java.util.ArrayList) LinkedList(java.util.LinkedList)

Aggregations

AfterQueryEvent (com.google.cloud.spring.data.datastore.core.mapping.event.AfterQueryEvent)7 EntityQuery (com.google.cloud.datastore.EntityQuery)3 StructuredQuery (com.google.cloud.datastore.StructuredQuery)3 BaseKey (com.google.cloud.datastore.BaseKey)2 IncompleteKey (com.google.cloud.datastore.IncompleteKey)2 Key (com.google.cloud.datastore.Key)2 KeyQuery (com.google.cloud.datastore.KeyQuery)2 ProjectionEntityQuery (com.google.cloud.datastore.ProjectionEntityQuery)2 Query (com.google.cloud.datastore.Query)2 QueryResults (com.google.cloud.datastore.QueryResults)2 ArrayList (java.util.ArrayList)1 LinkedList (java.util.LinkedList)1 List (java.util.List)1 Test (org.junit.jupiter.api.Test)1