2016-04-03 20 views
0

Sorunun tam olarak burada olduğundan emin değilim. Bu Amazon DynamoDb veritabanım. Ben sağlanan anahtar unsuru şema ile uyuşmuyor sorunu alıyorum.Benim hata ayıklama ve tüm değerlerin ayarlandığından emin değilim, ancak bu sorunun neden geldiğinden emin değilim. Bir şey mi eksik? sağlanan anahtar öğesi şema ile eşleşmiyor - java

enter image description here

Bu

Bu büyük olasılıkla veri modeli ve DynamoDB gerçek tablonun arasında bir uyumsuzluk olduğu Aslında db

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

Görüntü yerine biçimlendirilmiş metin olarak kod gönderiyorsanız, daha fazla yardım alma şansınız olacak – andrepnh

cevap

1

içine eklemeyi deneyin kod snippet'idir. 'Job' sınıfınızda (bölüm anahtarı ve isteğe bağlı olarak sırala) tanımlanan anahtarın, DynamoDB'deki (sınıfınızda @DynamoDBTable özniteliğiyle tanımlanan) tam adı ve türü ile eşleştiğinden emin olun.

@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
: Aşağıda veri modelini ve tablo ProductCatalog kullanılarak save operasyonu infaz Örneğin, veri modeli Integer olarak anahtarını tanımlayan gibi DynamoDB aynı durum üretecek tip string bir bölüm anahtarı Id vardı

, nesne sınıfındaki @DynamoDBHashKey ve @DynamoDBAttribute dikkat edin. bunların arasında karıştırmayın. Birincisi, şemanın anahtarı için, ikincisi ise normal öznitelikler içindir. Sadece anahtarı ayarlamaya ve diğer öznitelikleri kullanmaya çalışıp, dinamodu yüklemeye çalışsanız bile, bir istisna alırsınız. Elbette özniteliklere ekleyebileceğiniz diğer "@" etiketleriyle ilgilidir.

İlgili konular