2016-04-03 17 views
0

問題が何であるかわかりません。これはAmazon DynamoDbのデータベースです。私は提供されたキー要素の問題がスキーマと一致しないことを続けています。私はdebuggindを行って、すべての値が設定されていることを確認しましたが、なぜこの問題が起こっているのかはわかりません。何か不足していますか?提供されたキー要素がスキーマと一致しません - Java

enter image description here

これは私が実際にこれが最も可能性の高いデータモデルとDynamoDBの中に実際のテーブルの間のミスマッチであるデシベル

final Job job = new Job(); 
job.setDescription(txtDescription.getText().toString()); 
job.setType("Job entry"); 
job.setPrice(500); 
job.setDate((new Date()).getTime()); 
job.setId("1"); 
job.setPosterID("poster"); 
Thread thread = new Thread(new Runnable(){ 
    @Override 
    public void run() { 
     try { 
      DynamoDBMapper mapper = new DynamoDBMapper(ActivityMain.getAWSClient(getActivity())); 
      mapper.save(job); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
}); 
thread.start(); 
+0

画像の代わりに書式設定されたテキストとしてコードを投稿すると、助けを受ける機会が増えます – andrepnh

答えて

1

に追加しようとするコードの抜粋です。 'ジョブ'クラス(パーティションキーとオプションのソートキー)で定義されているキーがDynamoDBのテーブルの正確な名前とタイプと一致することを確認してください(クラスで@DynamoDBTable属性で定義されています)。

@DynamoDBTable(tableName="ProductCatalog") 
public static class CatalogItem { 
    private Integer id; 
    private String title; 

    //Partition key 
    @DynamoDBHashKey(attributeName="Id") 
    public Integer getId() { return id; } 
    public void setId(Integer id) { this.id = id; } 

    @DynamoDBAttribute(attributeName="Title") 
    public String getTitle() { return title; }  
    public void setTitle(String title) { this.title = title; } 

} 
2
:あなたは以下のデータ・モデル、およびテーブル ProductCatalogを使用して save操作を実行している場合たとえば、データモデルは Integerとしてキーを定義すると、DynamoDBのは、同じ例外を生成するタイプ stringのパーティションキー Idを持っていました

は、オブジェクトクラスの@DynamoDBHashKeyおよび@DynamoDBAttributeに注意してください。 それらを混同しないでください。最初はスキーマのキー用で、2番目は通常の属性用です。キーのみを設定して他の属性を使用せずにダイナモブにアップロードしようとしても、例外が発生します。もちろん、属性にアタッチできる他の "@"タグと関連しています。

関連する問題