Batch Query in DynamoDB Using Java (Guide w/ Code Examples)

Provided by Rafal Wilinski
Last updated: October 23rd, 2026
DynamoDB has no BatchQuery API. To retrieve item collections for several partition keys, issue one Query per partition and paginate each. BatchGetItem is for known complete primary keys.
This example uses Java 17+ and the software.amazon.awssdk:dynamodb SDK 2.x dependency. Configure an AWS Region and credentials through your usual AWS profile or runtime role. The Orders table has String keys pk and sk; adapt the table and keys to your schema.
import java.util.*; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.dynamodb.model.*; public class Example { static AttributeValue s(String value) { return AttributeValue.builder().s(value).build(); } static Map<String, AttributeValue> key(String order) { return Map.of("pk", s("CUSTOMER#123"), "sk", s(order)); } public static void main(String[] args) throws InterruptedException { try (DynamoDbClient ddb = DynamoDbClient.create()) { for (String customer : List.of("CUSTOMER#123", "CUSTOMER#456")) { QueryRequest request = QueryRequest.builder().tableName("Orders") .keyConditionExpression("#pk = :pk") .expressionAttributeNames(Map.of("#pk", "pk")) .expressionAttributeValues(Map.of(":pk", s(customer))).build(); for (QueryResponse page : ddb.queryPaginator(request)) { page.items().forEach(System.out::println); } } } } }
This example runs sequentially. If you introduce concurrency, bound it to the table capacity and handle throttling.
Reference: AWS Query API. For related access patterns, see DynamoDB query examples.
Similar Code Examples
- Batch Write Item in DynamoDB Using Java
- Delete Multiple Items in DynamoDB Using Java
- Query Index in DynamoDB Using Java
- Get Item Request in DynamoDB Using Java
- Delete Expression in DynamoDB Using Java
- Batch Load Using DynamoDB Mapper
- Batch Update Using DynamoDB Mapper
- Update Multiple Items in DynamoDB Using Java
- Update Multiple Attributes in DynamoDB Using Java
- Batch Read in DynamoDB Using Java
- Batch Get in DynamoDB Using Java
- Update Expression in DynamoDB Using Java
- Conditional Update in DynamoDB Using Java
- Delete by Hashkey Using DynamoDB Mapper
- Query Local Secondary Index in DynamoDB Using Java
Dynobase is a Professional GUI Client for DynamoDB
Start your 7-day free trial today
Product Features
DynamoDB Tools
DynamoDB Info
© 2026 Dynobase