如何使主键在房间持久库中使用复合主键时自动增加?
问题描述:
我使用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”自动递增。我怎样才能做到这一点?
答
我找到了解决此问题的另一种方法,因为根据我的知识,在某些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;
}
为什么你需要两个主键?如果两者都相同? –
@KuLdipPaTel对不起,我不明白你的问题。我想要两个主键,它们不是同一个。一个是“news_paper_id”,另一个是“news_paper_name”。我想让“news_paper_id”自动递增!我希望这个解释清楚你的怀疑。 –
再次检查我的答案,并尝试这样。 –