Search in sources :

Example 46 with Query

use of com.google.appengine.api.datastore.Query in project java-docs-samples by GoogleCloudPlatform.

the class ProjectionTest method projectionQuery_grouping_filtersDuplicates.

@Test
public void projectionQuery_grouping_filtersDuplicates() {
    putTestData("some duplicate", 0L);
    putTestData("some duplicate", 0L);
    putTestData("too big", 1L);
    // [START grouping]
    Query q = new Query("TestKind");
    q.addProjection(new PropertyProjection("A", String.class));
    q.addProjection(new PropertyProjection("B", Long.class));
    q.setDistinct(true);
    q.setFilter(Query.FilterOperator.LESS_THAN.of("B", 1L));
    q.addSort("B", Query.SortDirection.DESCENDING);
    q.addSort("A");
    // [END grouping]
    List<Entity> entities = datastore.prepare(q).asList(FetchOptions.Builder.withLimit(5));
    assertThat(entities).hasSize(1);
    Entity entity = entities.get(0);
    assertThat((String) entity.getProperty("A")).named("entity.A").isEqualTo("some duplicate");
    assertThat((long) entity.getProperty("B")).named("entity.B").isEqualTo(0L);
}
Also used : Entity(com.google.appengine.api.datastore.Entity) Query(com.google.appengine.api.datastore.Query) PropertyProjection(com.google.appengine.api.datastore.PropertyProjection) Test(org.junit.Test)

Example 47 with Query

use of com.google.appengine.api.datastore.Query in project java-docs-samples by GoogleCloudPlatform.

the class QueriesTest method sortOrderExample_multipleSortOrders_returnsSortedEntities.

@Test
public void sortOrderExample_multipleSortOrders_returnsSortedEntities() throws Exception {
    // Arrange
    Entity a = new Entity("Person", "a");
    a.setProperty("lastName", "Alpha");
    a.setProperty("height", 100);
    Entity b1 = new Entity("Person", "b1");
    b1.setProperty("lastName", "Bravo");
    b1.setProperty("height", 150);
    Entity b2 = new Entity("Person", "b2");
    b2.setProperty("lastName", "Bravo");
    b2.setProperty("height", 200);
    Entity c = new Entity("Person", "c");
    c.setProperty("lastName", "Charlie");
    c.setProperty("height", 300);
    datastore.put(ImmutableList.<Entity>of(a, b1, b2, c));
    // Act
    // [START multiple_sort_orders_example]
    Query q = new Query("Person").addSort("lastName", SortDirection.ASCENDING).addSort("height", SortDirection.DESCENDING);
    // [END multiple_sort_orders_example]
    // Assert
    List<Entity> results = datastore.prepare(q.setKeysOnly()).asList(FetchOptions.Builder.withDefaults());
    assertThat(results).named("query results").containsExactly(a, b2, b1, c).inOrder();
}
Also used : Entity(com.google.appengine.api.datastore.Entity) Query(com.google.appengine.api.datastore.Query) PreparedQuery(com.google.appengine.api.datastore.PreparedQuery) Test(org.junit.Test)

Example 48 with Query

use of com.google.appengine.api.datastore.Query in project java-docs-samples by GoogleCloudPlatform.

the class QueriesTest method queryRestrictions_compositeEqualFilter_returnsMatchedEntities.

@Test
public void queryRestrictions_compositeEqualFilter_returnsMatchedEntities() throws Exception {
    // Arrange
    Entity a = new Entity("Person", "a");
    a.setProperty("birthYear", 1930);
    a.setProperty("city", "Somewhere");
    a.setProperty("lastName", "Someone");
    Entity b = new Entity("Person", "b");
    b.setProperty("birthYear", 1960);
    b.setProperty("city", "Somewhere");
    b.setProperty("lastName", "Someone");
    Entity c = new Entity("Person", "c");
    c.setProperty("birthYear", 1990);
    c.setProperty("city", "Somewhere");
    c.setProperty("lastName", "Someone");
    Entity d = new Entity("Person", "d");
    d.setProperty("birthYear", 1960);
    d.setProperty("city", "Nowhere");
    d.setProperty("lastName", "Someone");
    Entity e = new Entity("Person", "e");
    e.setProperty("birthYear", 1960);
    e.setProperty("city", "Somewhere");
    e.setProperty("lastName", "Noone");
    datastore.put(ImmutableList.<Entity>of(a, b, c, d, e));
    long minBirthYear = 1940;
    long maxBirthYear = 1980;
    String targetCity = "Somewhere";
    String targetLastName = "Someone";
    // [START inequality_filters_one_property_valid_example_2]
    Filter lastNameFilter = new FilterPredicate("lastName", FilterOperator.EQUAL, targetLastName);
    Filter cityFilter = new FilterPredicate("city", FilterOperator.EQUAL, targetCity);
    Filter birthYearMinFilter = new FilterPredicate("birthYear", FilterOperator.GREATER_THAN_OR_EQUAL, minBirthYear);
    Filter birthYearMaxFilter = new FilterPredicate("birthYear", FilterOperator.LESS_THAN_OR_EQUAL, maxBirthYear);
    Filter validFilter = CompositeFilterOperator.and(lastNameFilter, cityFilter, birthYearMinFilter, birthYearMaxFilter);
    Query q = new Query("Person").setFilter(validFilter);
    // [END inequality_filters_one_property_valid_example_2]
    // Assert
    List<Entity> results = datastore.prepare(q.setKeysOnly()).asList(FetchOptions.Builder.withDefaults());
    assertThat(results).named("query results").containsExactly(b);
}
Also used : Entity(com.google.appengine.api.datastore.Entity) Query(com.google.appengine.api.datastore.Query) PreparedQuery(com.google.appengine.api.datastore.PreparedQuery) Filter(com.google.appengine.api.datastore.Query.Filter) CompositeFilter(com.google.appengine.api.datastore.Query.CompositeFilter) FilterPredicate(com.google.appengine.api.datastore.Query.FilterPredicate) Test(org.junit.Test)

Example 49 with Query

use of com.google.appengine.api.datastore.Query in project java-docs-samples by GoogleCloudPlatform.

the class QueriesTest method getTallestPeople.

// [START query_limit_example]
private List<Entity> getTallestPeople() {
    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
    Query q = new Query("Person").addSort("height", SortDirection.DESCENDING);
    PreparedQuery pq = datastore.prepare(q);
    return pq.asList(FetchOptions.Builder.withLimit(5));
}
Also used : Query(com.google.appengine.api.datastore.Query) PreparedQuery(com.google.appengine.api.datastore.PreparedQuery) DatastoreService(com.google.appengine.api.datastore.DatastoreService) PreparedQuery(com.google.appengine.api.datastore.PreparedQuery)

Example 50 with Query

use of com.google.appengine.api.datastore.Query in project java-docs-samples by GoogleCloudPlatform.

the class QueriesTest method keysOnlyExample_returnsMatchingEntities.

@Test
public void keysOnlyExample_returnsMatchingEntities() throws Exception {
    // Arrange
    Entity a = new Entity("Person", "a");
    Entity b = new Entity("Building", "b");
    Entity c = new Entity("Person", "c");
    datastore.put(ImmutableList.<Entity>of(a, b, c));
    // [START keys_only_example]
    Query q = new Query("Person").setKeysOnly();
    // [END keys_only_example]
    // Assert
    List<Entity> results = datastore.prepare(q).asList(FetchOptions.Builder.withDefaults());
    assertThat(results).named("query results").containsExactly(a, c);
}
Also used : Entity(com.google.appengine.api.datastore.Entity) Query(com.google.appengine.api.datastore.Query) PreparedQuery(com.google.appengine.api.datastore.PreparedQuery) Test(org.junit.Test)

Aggregations

Query (com.google.appengine.api.datastore.Query)74 Entity (com.google.appengine.api.datastore.Entity)59 PreparedQuery (com.google.appengine.api.datastore.PreparedQuery)47 Test (org.junit.Test)38 FilterPredicate (com.google.appengine.api.datastore.Query.FilterPredicate)31 Filter (com.google.appengine.api.datastore.Query.Filter)20 Key (com.google.appengine.api.datastore.Key)16 CompositeFilter (com.google.appengine.api.datastore.Query.CompositeFilter)16 DatastoreService (com.google.appengine.api.datastore.DatastoreService)13 ArrayList (java.util.ArrayList)13 PersistentDataStoreException (codeu.model.store.persistence.PersistentDataStoreException)6 FetchOptions (com.google.appengine.api.datastore.FetchOptions)6 PrintWriter (java.io.PrintWriter)6 Instant (java.time.Instant)6 UUID (java.util.UUID)6 Conversation (codeu.model.data.Conversation)2 Message (codeu.model.data.Message)2 User (codeu.model.data.User)2 Book (com.example.getstarted.objects.Book)2 Result (com.example.getstarted.objects.Result)2