Google Datastore Query Get By ID & Filter – Code Example

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
Follow me

Ajitesh Kumar

I have been recently working in the area of Data Science and Machine Learning / Deep Learning. In addition, I am also passionate about various different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia etc and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data etc. I would love to connect with you on Linkedin.
Posted in Java. Tagged with , .

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload the CAPTCHA.