2016-10-31 5 views
0

誰かが私を助けてくれることを願っています。私はエラーなしで実行するdynamoDBにデータを書きますが、データはdynamoDBテーブルに表示されません。次のようにテーブルが開始され、次のようDynamoDBに書き込まれたデータが表に表示されない

@DynamoDBTable(tableName = "*table name") 

public class AttractionsLibraryDO { 
    private String _attractionName; 
    private String _attractionCategory; 
    private String _attractionCountry; 
    private String _attractionDate; 
    private String _attractionDescription; 
    private Double _attractionEntrance; 
    private String _attractionGps; 
    private String _attractionLocation; 
    private String _attractionPicture; 
    private Double _attractionRating; 
    private String _attractionToken; 
    private Double _attractionVisits; 

@DynamoDBHashKey(attributeName = "Attraction_name") 
public String getAttractionName() { 
    return _attractionName; 
} 

public void setAttractionName(final String _attractionName) { 
    this._attractionName = _attractionName; 
} 

@DynamoDBAttribute(attributeName = "Attraction_category") 
public String getAttractionCategory() { 
    return _attractionCategory; 
} 

public void setAttractionCategory(final String _attractionCategory) { 
    this._attractionCategory = _attractionCategory; 
} 
@DynamoDBAttribute(attributeName = "Attraction_country") 
public String getAttractionCountry() { 
    return _attractionCountry; 
} 

public void setAttractionCountry(final String _attractionCountry) { 
    this._attractionCountry = _attractionCountry; 
} 
@DynamoDBAttribute(attributeName = "Attraction_date") 
public String getAttractionDate() { 
    return _attractionDate; 
} 

public void setAttractionDate(final String _attractionDate) { 
    this._attractionDate = _attractionDate; 
} 
@DynamoDBAttribute(attributeName = "Attraction_description") 
public String getAttractionDescription() { 
    return _attractionDescription; 
} 

public void setAttractionDescription(final String _attractionDescription) { 
    this._attractionDescription = _attractionDescription; 
} 
@DynamoDBAttribute(attributeName = "Attraction_entrance") 
public Double getAttractionEntrance() { 
    return _attractionEntrance; 
} 

public void setAttractionEntrance(final Double _attractionEntrance) { 
    this._attractionEntrance = _attractionEntrance; 
} 
@DynamoDBAttribute(attributeName = "Attraction_gps") 
public String getAttractionGps() { 
    return _attractionGps; 
} 

public void setAttractionGps(final String _attractionGps) { 
    this._attractionGps = _attractionGps; 
} 
@DynamoDBAttribute(attributeName = "Attraction_location") 
public String getAttractionLocation() { 
    return _attractionLocation; 
} 

public void setAttractionLocation(final String _attractionLocation) { 
    this._attractionLocation = _attractionLocation; 
} 
@DynamoDBAttribute(attributeName = "Attraction_picture") 
public String getAttractionPicture() { 
    return _attractionPicture; 
} 

public void setAttractionPicture(final String _attractionPicture) { 
    this._attractionPicture = _attractionPicture; 
} 
@DynamoDBAttribute(attributeName = "Attraction_rating") 
public Double getAttractionRating() { 
    return _attractionRating; 
} 

public void setAttractionRating(final Double _attractionRating) { 
    this._attractionRating = _attractionRating; 
} 
@DynamoDBAttribute(attributeName = "Attraction_token") 
public String getAttractionToken() { 
    return _attractionToken; 
} 

public void setAttractionToken(final String _attractionToken) { 
    this._attractionToken = _attractionToken; 
} 
@DynamoDBAttribute(attributeName = "Attraction_visits") 
public Double getAttractionVisits() { 
    return _attractionVisits; 
} 

public void setAttractionVisits(final Double _attractionVisits) { 
    this._attractionVisits = _attractionVisits; 
} 
} 

は、私は、データベースにデータを書き込む:

public class AddAttraction extends AppCompatActivity { 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_add_attraction); 

    CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
      getApplicationContext(), // Context 
      "*Cognito identity pool id", // Identity Pool ID 
      Regions.EU_WEST_1 // Region 
    ); 
    AmazonDynamoDBClient ddbClient = new AmazonDynamoDBClient(credentialsProvider); 
    final DynamoDBMapper dynamoDBMapper = new DynamoDBMapper(ddbClient); 
    final AttractionsLibraryDO attractions_Library = new AttractionsLibraryDO(); 

    SUBMIT = (Button)findViewById(R.id.button_submit_attraction); 
    SUBMIT.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
      { 
      writeToDynamoDB(attractions_Library, dynamoDBMapper); 
      } 
    }); 

} 


public Thread writeToDynamoDB(final AttractionsLibraryDO attractions, final DynamoDBMapper dynamoDBMapper) { 


     Runnable runnableWrite = new Runnable() { 
      public void run() { 
       try { 
        Log.d("Event:", "Writing to DynamoDB."); 
        attractions.setAttractionCategory("String"); 
        attractions.setAttractionRating(int); 
        attractions.setAttractionCountry("String"); 
        attractions.setAttractionDate("String"); 
        attractions.setAttractionEntrance(int); 
        attractions.setAttractionGps("String"); 
        attractions.setAttractionLocation("String"); 
        attractions.setAttractionName("String"); 
        attractions.setAttractionPicture("String"); 
        attractions.setAttractionToken("String"); 
        attractions.setAttractionDescription("String"); 
        attractions.setAttractionVisits(int); 

        AmazonClientException lastException = null; 
         dynamoDBMapper.save(attractions); 
        Log.d("Event:", "Writing to DynamoDB done."); 
        } catch (final AmazonClientException ex) { 
         Log.d("Error", "Failed saving item : " + ex.getMessage(), ex); 

        } 
       } 
     }; 
     Thread t = new Thread(runnableWrite); 
     t.start(); 
     return null; 

} 
} 

データはDynamoDBのとDynamoDBの両方書き込みには表示されません。 dynamoDBへの書き込みを完了しました。ログに記録されます。問題は、間違ったテーブル名が使用されていることです(何百万回もこれをダブルチェックしました)。これが重要かどうかわかりませんが、次の行もログに記録されます:

I/System.out: (HTTPLog)-Static: isSBSettingEnabled false 

私はアイデアを使い果たしました。 ありがとうございます。

+0

あなたがやっていることに問題を見ることができない、それが動作するはずですが。あなたはコンソールの正しいAWS領域を探していますか? –

+0

また、保存した直後にこの行を追加してみてください: 'dynamoDBMapper.load(attractions);'、ログに記録して、あなたが得るものを見てください。 –

+0

あなたのテーブル名は何ですか?アトラクションクラスの注釈に「*テーブル名」があるのはなぜですか?これは本当のテーブル名ですか? – notionquest

答えて

0

デフォルトの "us-east-1"の代わりにテーブルが "eu-west-1"になっているため、DynamoDBクライアントの領域を明示的に設定する必要があります。あなたのコメントパー

、次の行を追加する必要があります。

ddbClient.setRegion(Region.getRegion(Regions.EU_WEST_1)); 
関連する問題