Supported data types for DynamoDB Mapper for Java - Amazon DynamoDB

Supported data types for DynamoDB Mapper for Java

This section describes the supported primitive Java data types, collections, and arbitrary data types in Amazon DynamoDB.

Amazon DynamoDB supports the following primitive Java data types and primitive wrapper classes.

  • String

  • Boolean, boolean

  • Byte, byte

  • Date (as ISO_8601 millisecond-precision string, shifted to UTC)

  • Calendar (as ISO_8601 millisecond-precision string, shifted to UTC)

  • Long, long

  • Integer, int

  • Double, double

  • Float, float

  • BigDecimal

  • BigInteger

  • For more information about DynamoDB naming rules and the various supported data types, see Supported data types and naming rules in Amazon DynamoDB.

  • Empty Binary values are supported by the DynamoDBMapper.

  • Empty String values are supported by AWS SDK for Java 2.x.

    In AWS SDK for Java 1.x, DynamoDBMapper supports reading of empty String attribute values, however, it will not write empty String attribute values because these attributes are dropped from the request.

DynamoDB supports the Java Set, List, and Map collection types. The following table summarizes how these Java types map to the DynamoDB types.

Java type DynamoDB type

All number types

N (number type)


S (string type)

Boolean BOOL (Boolean type), 0 or 1.
ByteBuffer B (binary type)
Date S (string type). The Date values are stored as ISO-8601 formatted strings.
Set collection types SS (string set) type, NS (number set) type, or BS (binary set) type.

The DynamoDBTypeConverter interface lets you map your own arbitrary data types to a data type that is natively supported by DynamoDB. For more information, see Mapping arbitrary data.