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
私はアイデアを使い果たしました。 ありがとうございます。
あなたがやっていることに問題を見ることができない、それが動作するはずですが。あなたはコンソールの正しいAWS領域を探していますか? –
また、保存した直後にこの行を追加してみてください: 'dynamoDBMapper.load(attractions);'、ログに記録して、あなたが得るものを見てください。 –
あなたのテーブル名は何ですか?アトラクションクラスの注釈に「*テーブル名」があるのはなぜですか?これは本当のテーブル名ですか? – notionquest