javaでDynamoDBからデータを取得したいです。
DynamoDBに以下のテーブルがあります。
テーブル名「test1」
{ "koumoku1": 1, "koumoku2": "2", "koumoku3": { "koumoku4": { "koumoku5": { "koumoku6": "3" } } } }
メインのjavaの処理は以下の通りです。
(省略) DynamoDBMapper mapper = accessor.getInstance("test1").getAmazonDynamoDBMapper(); DynamoDBScanExpression scanExpression = new DynamoDBScanExpression(); List<testModel> scanResult = mapper.scan(testModel.class, scanExpression); System.out.println(scanResult.get(0)); (省略)
この時「testModel」は以下にすると正常に動き、テーブルのデータを表示できます。
(省略) private Long koumoku1; private String koumoku2; @DynamoDBHashKey(attributeName = "koumoku1") public Long getKoumoku1() { return koumoku1; } public void setId(Long koumoku1) { this.koumoku1 = koumoku1; } @DynamoDBRangeKey(attributeName = "koumoku2") public String getKoumnoku2() { return koumoku2; } public void setKoumoku2(String koumoku2) { this.koumoku2 = koumoku2; } (省略)
この時koumoku3の値を取得しようとして「testModel」を以下のようにしたらエラーになりました。
(省略) private Long koumoku1; private String koumoku2; //追加START private String koumoku3; //追加END @DynamoDBHashKey(attributeName = "koumoku1") public Long getKoumoku1() { return koumoku1; } public void setId(Long koumoku1) { this.koumoku1 = koumoku1; } @DynamoDBRangeKey(attributeName = "koumoku2") public String getKoumnoku2() { return koumoku2; } public void setKoumoku2(String koumoku2) { this.koumoku2 = koumoku2; } //追加START @DynamoDBRangeKey(attributeName = "koumoku3") public String getKoumnoku3() { return koumoku3; } public void setKoumoku3(String koumoku3) { this.koumoku3 = koumoku3; } //追加END (省略)
エラー内容は以下です。
Servlet.service() for servlet [dispatcherServlet] in context with path [/hoge] threw exception [Request processing failed; nested exception is com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: testModel[koumoku3]; could not unconvert attribute] with root cause com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: expected SS in value ~
要するにString型ではkoumoku3以下の情報を取得できないからだと考えています。
koumoku3以下の情報を取得するにはどうすればよいでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/13 07:25