2017-12-05 16 views
2

私はJavaバックエンドサーバでuuidを使用しています。だから私は部屋のアンドロイドでそのエンティティを使用して、エンティティが正しく同期されていることを確認する必要があります。 私はIs it possible to apply primary key on the text fields in android databasetext as primarykey in androidを認識しています。このようなものを作成したいAndroidのPrimaryKeyとしてStringを使用することはできますか

@Entity(tableName = CrewColumns.TABLE_NAME) 
@TypeConverters(BigDecimalConverter::class) 
@JsonIgnoreProperties(ignoreUnknown = true) 
class Crew() { 
    constructor (uuid: String) : this() { 
     this.uuid = uuid; 
    } 

    /** 
    * The unique ID of the item. 
    */ 
    @PrimaryKey 
    @ColumnInfo(name = CrewColumns.UUID) 
    var uuid: String = "" 
    @ColumnInfo(name = CrewColumns.NAME) 
    var name: String = "" 
} 

ルーム(DAOなど)に問題がありますか?ありがとうございました。

+0

あなたは確かに主キーとして文字列を使用することができます。試したときにどんな問題が発生しましたか? – CommonsWare

+0

@CommonsWare現在のところありません。 – ThomasEdwin

答えて

1

androidアノテーションから@NonNullでそのフィールドに注釈を付ける必要があります。それを行うには、アプリケーションのGradleのに次の行を追加します

compile 'com.android.support:support-annotations:26.1.0' 

をし、コード内では同じくらい簡単です:

@Entity 
public class User { 
    @PrimaryKey 
    @NonNull 
    private String email; 

    ... 
} 
関連する問題