I am using Room persistent library. I have requirement to add two primary keys in one table and one of the primary key should be auto increment. I don't know exact syntax to achieve this. Below is my Model class:
@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; }
I want to make "news_paper_id" to be auto incremented. How can i make it?
Auto-increment allows a unique number to be generated automatically when a new record is inserted into a table. Often this is the primary key field that we would like to be created automatically every time a new record is inserted.
Auto-incremented key, also called as surrogate key is a single table column which contains unique numeric values which can be used to uniquely identify a single row of data in a table.
Auto-increment should be used as a unique key when no unique key already exists about the items you are modelling. So for Elements you could use the Atomic Number or Books the ISBN number.
I found another way around for this problem because as per my knowledge after some R&D, we can not have auto increment property in Composite Primary keys. So I used indices and unique constraint here because Room does not have direct UNIQUE constraint till now. So below is my working code:
@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; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With