首页 > 解决方案 > 不支持; 需要 @DynamoDBTyped 或 @DynamoDBTypeConverted

问题描述

型号类:

@DynamoDBTable(tableName="PageState")
public class PageState {
    private String state;
    private String[] columns;
    
    @DynamoDBHashKey(attributeName="state")
    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }

    @DynamoDBAttribute(attributeName="columns")
    public String[] getColumns() {
        return columns;
    }

    public void setColumns(String[] columns) {
        this.columns = columns;
    }
}

保存 PageState 项的代码

AmazonDynamoDB client = AmazonDynamoDBClientBuilder
        .standard().withEndpointConfiguration(
                new AwsClientBuilder.EndpointConfiguration("http://localhost:8000", "eu-west-2")).build();
        
public PageState addPageState() {
    PageState metaData=new PageState();
    metaData.setState("NewPage1");
    String[] defaultColumns={ "AAA", "BBB", "CCC"};
    metaData.setColumns(defaultColumns);
    DynamoDBMapper mapper = new DynamoDBMapper(client);
    mapper.save(metaData);

    return null;
}

创建表

var params = {
TableName: 'PageState',
KeySchema: [ 
    { 
        AttributeName: 'state',
        KeyType: 'HASH',
    },
],
AttributeDefinitions: [ 
    {
        AttributeName: 'state',
        AttributeType: 'S', 
    },
],
ProvisionedThroughput: { 
    ReadCapacityUnits: 5, 
    WriteCapacityUnits: 5, 
},
};

dynamodb.createTable(params, function(err, data) {
    if (err) ppJson(err); // an error occurred
    else ppJson(data); // successful response

});

保存 PageState 对象时出现错误;
不支持; 需要 @DynamoDBTyped 或 @DynamoDBTypeConverted

标签: javaamazon-dynamodb

解决方案


推荐阅读