Just take note before using asSingleEntity you must to make sure that you query will on return one entity(record) or else you will came up a problem TooManyResultsException
Suggestion to limit this unexpected behavior
public static Entity getSingleData(Query q){ FetchOptions fOption = FetchOptions.Builder.withLimit(1); try{ return datastore.prepare(q).asList(fOption).get(0); }catch (IndexOutOfBoundsException e) { logger.warning("No data sorry: "+e.getMessage()); return null; } //return datastore.prepare(q).asSingleEntity(); }