gpt4 book ai didi

java - DynamoDBMapper 不工作 - 保存批记录抛出@DynamoDBTyped 或@DynamoDBTypeConverted 错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:41:28 25 4
gpt4 key购买 nike

我想做什么? -我想使用 DynamoDBMapper 将一批记录保存到 DynamoDB。

模型类

package model;

import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAutoGeneratedKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBDocument;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable;

@DynamoDBTable(tableName = "jobTable")
public final class MapperModel {
public String jobId;
public String jobName;
public Stringparams stringparams[];
public String url;
public String source;
public String[] target;
public String contentType;
public String dueDate;
public Metadata metadata;

/** getters start here **/
@DynamoDBHashKey(attributeName = "jobId")
public String getJobId() {
return jobId;
}

@DynamoDBAttribute(attributeName = "jobName")
public String getJobName() {
return jobName;
}

@DynamoDBAttribute(attributeName = "url")
public String getURL() {
return url;
}

@DynamoDBAttribute(attributeName = "strings")
public Stringparams[] getStrings() {
return stringparams;
}


@DynamoDBAttribute(attributeName = "source")
public String getSource() {
return source;
}

@DynamoDBAttribute(attributeName = "target")
public String[] getTarget() {
return target;
}

@DynamoDBAttribute(attributeName = "contentType")
public String getContentType() {
return contentType;
}

@DynamoDBAttribute(attributeName = "dueDate")
public String getDueDate() {
return dueDate;
}

@DynamoDBAttribute(attributeName = "metadata")
public Metadata getMetadata() {
return metadata;
}

/** setters start here **/

public void setJobId(String string) {
this.jobId = string;
}

public void setJobName(String jobName) {
this.jobName = jobName;
}

public void setStrings(Stringparams[] strings) {
this.stringparams = strings;
}

public void setURL(String url) {
this.url = url;
}

public void setSource(String source) {
this.source = source;
}

public void setTarget(String[] target) {
this.target = target;
}

public void setContentType(String contentType) {
this.contentType = contentType;
}

public void setDueDate(String dueDate) {
this.dueDate = dueDate;
}

public void setMetadata(Metadata metadata) {
this.metadata = metadata;
}

@DynamoDBDocument
public static final class Stringparams {
@DynamoDBAutoGeneratedKey
public String key;
public String value;
public String description;

public String getKey() {
return key;
}

public void setKey(String key) {
this.key = key;
}

@DynamoDBAttribute(attributeName = "value")
public String getValue() {
return value;
}

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

@DynamoDBAttribute(attributeName = "description")
public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

}

@DynamoDBDocument
public static final class Metadata {
public String invoicingCategory;
public String invoicingRegion;
public String referenceURL;

public void setInvoicingCategory(String invoicingCategory) {
this.invoicingCategory = invoicingCategory;
}

public void setInvoicingRegion(String invoicingRegion) {
this.invoicingRegion = invoicingRegion;
}

public void setReferenceURL(String referenceURL) {
this.referenceURL = referenceURL;
}

@DynamoDBAttribute(attributeName = "invoicingCategory")
public String getInvoicingCategory() {
return invoicingCategory;
}

@DynamoDBAttribute(attributeName = "invoicingRegion")
public String getInvoicingRegion() {
return invoicingRegion;
}

@DynamoDBAttribute(attributeName = "referenceURL")
public String getReferenceURL() {
return referenceURL;
}

}
}

public class Test {

......
.......

public void persistRecordsToDataStore(List<MapperModel>
requestModelList)
{

AmazonDynamoDB amazonDynamoDBClient = new
AmazonDynamoDBClient();
DynamoDBMapper dynamoDBMapper = new
DynamoDBMapper(amazonDynamoDBClient);


amazonDynamoDBClient.setRegion(Region.getRegion(Regions.US_WEST_2));

boolean insertStatus = insertRecords(dynamoDBMapper, requestModelList)

}


public static boolean insertRecords(DynamoDBMapper dynamoDBMapper,
List<MapperModel> requestModelList)
{
for (MapperModel requestModel : requestModelList)
{
dynamoDBMapper.save(requestModel);
}

return true;
}

......
......
}

问题:我看到一个错误不受支持;需要@DynamoDBTyped 或@DynamoDBTypeConverted。任何人都可以帮助我理解和分享修复程序吗?

最佳答案

使用注释 @DynamoDBDocument 有更简单的方法>

例如在上面的java类中,

@DynamoDBDocument
public class Metadata {
private Stirng aa;
private int bb;
}

那么它应该可以工作了

关于java - DynamoDBMapper 不工作 - 保存批记录抛出@DynamoDBTyped 或@DynamoDBTypeConverted 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41108404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com