2017-10-17 129 views
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; 
}