1

我使用Room持久庫。我有要求在一個表中添加兩個主鍵,其中一個主鍵應該是自動增量。我不知道確切的語法來實現這一點。以下是我的模特類:如何使主鍵在房間持久庫中使用複合主鍵時自動增加?

@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

爲什麼你需要兩個主鍵?如果兩者都相同? –

+0

@KuLdipPaTel對不起,我不明白你的問題。我想要兩個主鍵,它們不是同一個。一個是「news_paper_id」,另一個是「news_paper_name」。我想讓「news_paper_id」自動遞增!我希望這個解釋清楚你的懷疑。 –

+0

再次檢查我的答案,並嘗試這樣。 –

回答

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; 
}