2016-11-26 3 views
0

AWS DynamoDBでテーブルを作成しました。このテーブルは、私が開発している基本的な質問と回答のフォーラムで使用しています。テーブルの作成とデータの挿入が成功したテストtime_stampという名前の質問の日付を格納する属性を追加することにしましたが、私の知らない理由のためにテーブル構造を更新することができません。データはエラーなしで保存されますが、time_stampフィールドはありません。AndroidとDynamoDBテーブルにアトリビュートを追加できない

テーブルを削除して何度も再作成し、time_stampデータタイプを修正して、失敗したので、誰かが私を助けてくれることを願っています。私は、DynamoDBのテーブル構造を変更するための唯一の必要なことは、Javaのマッピングクラスを変更するだけで、動作させることはできないと考えました。

マイマッピングクラスは次です:

import com.amazonaws.mobileconnectors.dynamodbv2.dynamodbmapper.*; 

@DynamoDBTable(tableName = "community_questions") 
public class CommunityQuestion { 

    private long question_id; 
    private String time_stamp; 
    private String user_id; 
    private String subject; 
    private String question; 

    @DynamoDBHashKey(attributeName = "question_id") 
    public long getQuestionId() { return question_id; } 

    public void setQuestionId(long questionId) { this.question_id = questionId; } 

    @DynamoDBAttribute (attributeName = "time_stamp") 
    public String geTimeStamp() { 
     return time_stamp; 
    } 

    public void setTimeStamp(String timeStamp) { 
     this.time_stamp = timeStamp; 
    } 

    @DynamoDBAttribute (attributeName = "user_id") 
    public String getUserId() { 
     return user_id; 
    } 

    public void setUserId(String userId) { 
     this.user_id = userId; 
    } 

    @DynamoDBAttribute(attributeName = "subject") 
    public String getSubject() { 
     return subject; 
    } 

    public void setSubject(String subject) { 
     this.subject = subject; 
    } 

    @DynamoDBAttribute(attributeName = "question") 
    public String getQuestion() { 
     return question; 
    } 

    public void setQuestion(String question) { 
     this.question = question; 
    } 
} 

すべてのデータがエラーなしで保存されているが、TIME_STAMPはしません!

保存操作にmapper.saveを使用しています。

AWSコンソールで更新する必要がありますか?何も見つかりません。

事前にお手伝いしてあげてください。

+1

はgetTimeStamp' 'に' geTimeStamp'の名前を変更してみてください。 Dynamodbmapperは、正しい 'get'接頭辞を持つメソッドについては、あまりにも大変です。 – zapl

+0

ああ、私のゴシ!!私はそれがそんなにばかげたことだとは信じられません。私は何時間も頭を悩ましていて、その愚かな "t"が見えなかった。 私はあなたに今気分に感謝しています。 私はこれを解決済みとマークし、もう一度、あなたの迅速で非常に良い返答に感謝します。あなたは非常に良い観察私の友人です:) –

+0

私は解決としてこの答えをマークする方法を見つけることができません、あなたは私を助けることができますzapl? –

答えて

0

コードに誤字があります。 geTimeStamp DynamoDbMapperが正確"get"又は"is"プレフィックスを持つメソッドのみを考慮し、次いで第2のステップにおいて、これらのアノテーションをチェック

getTimeStampに名前を変更します。そのためにあなたの追加されたプロパティをピックアップしません。

/** 
* Returns whether the method given is a getter method we should serialize/
* deserialize to the service. The method must begin with "get" or "is", 
* have no arguments, belong to a class that declares its table, and not be 
* marked ignored. 
*/ 
private static boolean isRelevantGetter(Method m) { 

(soure)

関連する問題