UPDATE:あなたはDynamoDBのマップ属性にJava.Util.Mapプロパティをマッピングする必要があると気づいたので、下記のすべてがあなたの質問に答えていません、申し訳ありません。私の場合、Java.Util.Mapクラスのプロパティではなく、カスタムクラスのプロパティが使用されます。
あなたのテーブルには、「my_tableに」名前を持ち、そして次は、レコードのJSONダンプであると仮定したとします
(ここでmy_map「M」タイプの目的のフィールドである)
{
uuid: "52f9d257-7998-4379-928b-9d41d70dd8a8",
my_map: {
field1: 123,
field2: 456
}
}
あなたは2つの注釈付きクラス、テーブル自体のための最初のものを作成する必要があり、このようなテーブルのためDynamoDBMapperを使用するには
:
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBHashKey;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBTable;
@DynamoDBTable(tableName="my_table")
public class MyClass {
private String uuid;
private MyMapClass myMap;
@DynamoDBHashKey(attributeName="uuid")
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
@DynamoDBAttribute(attributeName = "my_map")
public MyMapClass getMyMap() {
return myMap;
}
public void setMyMap(MyMapClass myMap) {
this.myMap = myMap;
}
}
2つ目 - my_mapフィールド用:
...
DynamoDBMapper dbMapper = new DynamoDBMapper(dbClient);
...
MyClass item = new MyClass();
item.setUuid("52f9d257-7998-4379-928b-9d41d70dd8a8");
MyMapClass map = new MyMapClass();
map.setField1(123);
map.setField2(456);
item.setMyMap(map);
dbMapper.save(item);
・ホープ、このことができます:ここで
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBAttribute;
import com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBDocument;
@DynamoDBDocument
public class MyMapClass {
private int field1;
private int field2;
@DynamoDBAttribute(attributeName = "field1")
public int getField1() {
return field1;
}
public void setField1(int field1) {
this.field1 = field1;
}
@DynamoDBAttribute(attributeName = "field2")
public int getField2() {
return field2;
}
public void setField2(int field2) {
this.field2 = field2;
}
}
は使用例です!
出典
2016-05-19 14:17:59
xtx
あなたはこれを理解しましたか? – BinaryShrub