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);
}
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();
}
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);
}
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));
}
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);
}
Aggregations