我想将 ItemCollection 转换为我的 java pojo 对象。我希望目前通过以下方式这样做。最好的方法是什么?
QuerySpec spec = new QuerySpec()
.withKeyConditionExpression("txn_id = :txnId")
.withFilterExpression("rrn = :rrn")
.withValueMap(new ValueMap()
.withString(":txnId", txnId)
.withString(":rrn", rrn))
.withConsistentRead(true);
ItemCollection<QueryOutcome> items = table.query(spec);
在这里我得到了 ItemCollection 。现在我将把它转换成我的 java pojo :-
Iterator<Item> iter = items.iterator();
while (iter.hasNext()) {
String txn = iter.next().toJSON();
Gson gson = new Gson();
Test t = gson.fromJson(txn, Test.class);
return t;
}
有没有办法像我们在 mysql 中那样直接将 dynamodb 获取值(ItemCollection)转换为 java pojo ?为什么我总是会得到 json 然后隐蔽到 pojo 。我们不会在 mysql 或 oracle DB 等其他数据库中这样做。
文本.java
public class Test implements Serializable {
@DynamoDBAttribute(attributeName = "txn_id")
@JsonProperty("txn_id")
@DynamoDBHashKey
private String txnId;
private String umn;
private String note;
@DynamoDBAttribute(attributeName = "rrn")
private String rrn;
@DynamoDBAttribute(attributeName = "expire_on")
private Date expireOn;
@DynamoDBAttribute(attributeName = "expire_after")
private Integer expireAfter;
@DynamoDBAttribute(attributeName = "created_on")
@DynamoDBAutoGeneratedTimestamp(strategy= DynamoDBAutoGenerateStrategy.CREATE)
private Date createdOn;
}