Returns a list with a value for each given key (ordered by input). null values are
returned for nonexistent keys. When possible prefer using #get(Key...) to avoid eagerly
loading the results.
Returns an Entity for each given Key that exists in the Datastore. The order of
the result is unspecified. Results are loaded lazily, so it is possible to get a
DatastoreException from the returned Iterator's hasNext or
next methods.
See Also: #get(Key)
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Interface DatastoreReader (2.31.2)\n\nVersion latestkeyboard_arrow_down\n\n- [2.31.2 (latest)](/java/docs/reference/google-cloud-datastore/latest/com.google.cloud.datastore.DatastoreReader)\n- [2.31.1](/java/docs/reference/google-cloud-datastore/2.31.1/com.google.cloud.datastore.DatastoreReader)\n- [2.30.0](/java/docs/reference/google-cloud-datastore/2.30.0/com.google.cloud.datastore.DatastoreReader)\n- [2.29.1](/java/docs/reference/google-cloud-datastore/2.29.1/com.google.cloud.datastore.DatastoreReader)\n- [2.28.2](/java/docs/reference/google-cloud-datastore/2.28.2/com.google.cloud.datastore.DatastoreReader)\n- [2.27.1](/java/docs/reference/google-cloud-datastore/2.27.1/com.google.cloud.datastore.DatastoreReader)\n- [2.26.4](/java/docs/reference/google-cloud-datastore/2.26.4/com.google.cloud.datastore.DatastoreReader)\n- [2.25.2](/java/docs/reference/google-cloud-datastore/2.25.2/com.google.cloud.datastore.DatastoreReader)\n- [2.24.3](/java/docs/reference/google-cloud-datastore/2.24.3/com.google.cloud.datastore.DatastoreReader)\n- [2.23.0](/java/docs/reference/google-cloud-datastore/2.23.0/com.google.cloud.datastore.DatastoreReader)\n- [2.22.0](/java/docs/reference/google-cloud-datastore/2.22.0/com.google.cloud.datastore.DatastoreReader)\n- [2.21.3](/java/docs/reference/google-cloud-datastore/2.21.3/com.google.cloud.datastore.DatastoreReader)\n- [2.20.2](/java/docs/reference/google-cloud-datastore/2.20.2/com.google.cloud.datastore.DatastoreReader)\n- [2.19.2](/java/docs/reference/google-cloud-datastore/2.19.2/com.google.cloud.datastore.DatastoreReader)\n- [2.18.5](/java/docs/reference/google-cloud-datastore/2.18.5/com.google.cloud.datastore.DatastoreReader)\n- [2.17.6](/java/docs/reference/google-cloud-datastore/2.17.6/com.google.cloud.datastore.DatastoreReader) \n\n public interface DatastoreReader\n\nAn interface to represent Google Cloud Datastore read operations.\n\nMethods\n-------\n\n### \\\u003cT\\\u003erun(Query\\\u003cT\\\u003e query)\n\n public abstract QueryResults\u003cT\u003e \u003cT\u003erun(Query\u003cT\u003e query)\n\nSubmits a [Query](/java/docs/reference/google-cloud-datastore/latest/com.google.cloud.datastore.Query) and returns its result.\n\n### fetch(Key\\[\\] keys)\n\n public abstract List\u003cEntity\u003e fetch(Key[] keys)\n\nReturns a list with a value for each given key (ordered by input). `null` values are\nreturned for nonexistent keys. When possible prefer using [#get(Key...)](/java/docs/reference/google-cloud-datastore/latest/com.google.cloud.datastore.DatastoreReader#com_google_cloud_datastore_DatastoreReader_get_) to avoid eagerly\nloading the results.\n\n### get(Key key)\n\n public abstract Entity get(Key key)\n\nReturns an [Entity](/java/docs/reference/google-cloud-datastore/latest/com.google.cloud.datastore.Entity) for the given [Key](/java/docs/reference/google-cloud-datastore/latest/com.google.cloud.datastore.Key) or `null` if it doesn't exist.\n\n### get(Key\\[\\] keys)\n\n public abstract Iterator\u003cEntity\u003e get(Key[] keys)\n\nReturns an [Entity](/java/docs/reference/google-cloud-datastore/latest/com.google.cloud.datastore.Entity) for each given [Key](/java/docs/reference/google-cloud-datastore/latest/com.google.cloud.datastore.Key) that exists in the Datastore. The order of\nthe result is unspecified. Results are loaded lazily, so it is possible to get a `\nDatastoreException` from the returned `Iterator`'s hasNext or\nnext methods.\nSee Also: [#get(Key)](/java/docs/reference/google-cloud-datastore/latest/com.google.cloud.datastore.DatastoreReader#com_google_cloud_datastore_DatastoreReader_get_com_google_cloud_datastore_Key_)\n\n### runAggregation(AggregationQuery query)\n\n public abstract AggregationResults runAggregation(AggregationQuery query)\n\nSubmits a [AggregationQuery](/java/docs/reference/google-cloud-datastore/latest/com.google.cloud.datastore.AggregationQuery) and returns [AggregationResults](/java/docs/reference/google-cloud-datastore/latest/com.google.cloud.datastore.AggregationResults).\n\n### runAggregation(AggregationQuery query, ExplainOptions explainOptions)\n\n public abstract AggregationResults runAggregation(AggregationQuery query, ExplainOptions explainOptions)\n\n| **Beta**\n|\n| This feature is covered by the [Pre-GA Offerings Terms](/terms/service-terms#1) of the Terms of Service. Pre-GA libraries might have limited support, and changes to pre-GA libraries might not be compatible with other pre-GA versions. For more information, see the launch stage descriptions.\n\nSubmits a [AggregationQuery](/java/docs/reference/google-cloud-datastore/latest/com.google.cloud.datastore.AggregationQuery) with a specified [com.google.cloud.datastore.models.ExplainOptions](/java/docs/reference/google-cloud-datastore/latest/com.google.cloud.datastore.models.ExplainOptions) and returns [AggregationResults](/java/docs/reference/google-cloud-datastore/latest/com.google.cloud.datastore.AggregationResults)."]]