1

私は部屋の永続ライブラリを使用しています。私は1つのテーブルに2つの主キーを追加する必要があり、主キーの1つは自動インクリメントでなければなりません。私はこれを達成するための正確な構文を知らない。私のモデルクラスは以下の通りです:ルームパーシステントライブラリのコンポジットプライマリキーを使用してプライマリキーを自動インクリメントする方法は?

@Entity(tableName = "newsPapers", primaryKeys = 
{"news_paper_id","news_paper_name"}) 
public class SelectNewsModel { 

private int news_paper_id; 

@ColumnInfo(name = "image_url") 
private String imageUrl; 

@ColumnInfo(name = "news_paper_name") 
private String newsPaperName; 
} 

"news_paper_id"を自動インクリメントにしたいと思います。どうすれば作れますか?

+0

なぜ2つの主キーが必要ですか?両方が同じ場合は? –

+0

@KuLdipPaTel申し訳ありませんが、あなたの質問を理解できませんでした。私は同じではない2つの主キーが必要です。 1つは「news_paper_id」で、もう1つは「news_paper_name」です。そして、私は "news_paper_id"を自動インクリメントしたい!この説明が疑問をなくすことを願っています。 –

+0

もう一度私のansをチェックしてみてください。 –

答えて

1

いくつかのR & Dの後の私の知識によれば、複合プライマリキーでは自動インクリメントプロパティを持つことができないため、別の方法でこの問題を発見しました。だからRoomには今までUNIQUEの制約がありませんので、ここでインデックスとユニークな制約を使用しました。以下は私の作業コードです:

@Entity(tableName = "newsPapers", indices = {@Index(value = 
     {"news_paper_name"}, unique = true)}) 
public class SelectNewsModel { 

    @PrimaryKey(autoGenerate = true) 
    private int news_paper_id; 

    @ColumnInfo(name = "image_url") 
    private String imageUrl; 

    @ColumnInfo(name = "news_paper_name") 
    private String newsPaperName; 
} 
関連する問題