2

DynamoDBNativeBoolean is deprecated now. Is there any other opt? If you have sample please help out on that. I am using like below but it is stored as 0 or 1, while retrieving the date (scan/query) using withBOOL and it is not returning the result. As it changed to 0 or 1 and the data type to Number.

@DynamoDBAttribute(attributeName = "ischeckin") 
public Boolean getIscheckin() {
    return ischeckedin;
}
public void setIscheckin(Boolean ischeckin) {
    this.ischeckin = ischeckid;
}

1 Answer 1

5

You should use @DynamoDBTyped(DynamoDBAttributeType.BOOL) instead of @DynamoDBNativeBoolean. Please see the example below.

I was using aws-java-sdk-dynamodb:1.11.293

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-dynamodb</artifactId>
    <version>1.11.293</version>
</dependency>

and the following Entity

@DynamoDBTable(tableName = "Test")
public static class Entity {

    private String id;

    private boolean value;

    public Entity() {
    }

    public Entity(String id, boolean value) {
        this.id = id;
        this.value = value;
    }

    @DynamoDBHashKey(attributeName = "id")
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    @DynamoDBTyped(DynamoDBAttributeType.BOOL)
    @DynamoDBAttribute(attributeName = "value")
    public boolean isValue() {
        return value;
    }

    public void setValue(boolean value) {
        this.value = value;
    }
}

and main method

public static void main(String[] args) {
    AmazonDynamoDB dynamoDB = AmazonDynamoDBClientBuilder.standard()
        .withRegion(Regions.US_EAST_1)
        .withCredentials(new AWSStaticCredentialsProvider(
            new BasicAWSCredentials("accessKey", "secretKey")))
        .build();

    DynamoDBMapper mapper = new DynamoDBMapper(dynamoDB);

    mapper.save(new Entity("id", true));

    Entity entity = mapper.load(Entity.class, "id");
    System.out.println(entity.getId() + " " + entity.isValue());
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.