Google Datastore Query Get By ID & Filter – Code Example

0

Following are code samples on Google App Engine Datastore Query and how to get entities by id and based on filters.

Get Entity By Id

Pay attention to the code “datastore.get(KeyFactory.createKey( “savedreport”, reportId). “savedreport” is the name of entity.

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();		
	Entity entity = null;
	try {
		entity = datastore.get(KeyFactory.createKey("savedreport", reportId));
	} catch(EntityNotFoundException e) {
		e.printStackTrace();
	}

 

Get Entity By One Filter

Pay attention to “setFilter” method

Filter createdByFilter = new FilterPredicate("created_by", FilterOperator.EQUAL, userId );
Query query = new Query("sqm").setFilter( createdByFilter );				

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
List entities = datastore.prepare(query).asList( FetchOptions.Builder.withLimit( count ) );

 

Get Entity By Multiple Filter

Pay attention to usage of multiple FilterPredicate methods and CompositeFilterOperator and setFilter method called on Query.

Filter dateMinFilter = new FilterPredicate("sprint_enddate", FilterOperator.GREATER_THAN_OR_EQUAL, beginDate );
Filter dateMaxFilter = new FilterPredicate("sprint_enddate", FilterOperator.LESS_THAN_OR_EQUAL, endDate );		
Filter nameFilter = new FilterPredicate("project_id", FilterOperator.EQUAL, projectId );		
Filter createdByFilter = new FilterPredicate("created_by", FilterOperator.EQUAL, createdBy );
Filter rangeFilter = CompositeFilterOperator.and( nameFilter, createdByFilter, dateMinFilter, dateMaxFilter );
Query query = new Query("sqm").setFilter( rangeFilter );				

DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
List entities = datastore.prepare(query).asList( FetchOptions.Builder.withLimit( count ) );
Ajitesh Kumar
Share.

Leave A Reply

Time limit is exhausted. Please reload the CAPTCHA.