Как сделать автоинкремент первичного ключа при использовании составных первичных ключей в постоянной библиотеке комнат?

Я использую комнату постоянную библиотеку. У меня есть требование добавить два первичных ключа в одну таблицу, и один из первичных ключей должен иметь автоинкремент. Я не знаю точного синтаксиса для достижения этой цели. Ниже мой класс модели:

@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" был автоматически увеличен. Как я могу это сделать?

3 ответа

Решение

Я нашел другой способ решения этой проблемы, потому что, насколько я знаю, после некоторых исследований и разработок у нас не может быть свойства автоинкремента в составных первичных ключах. Поэтому я использовал индексы и уникальные ограничения, потому что у Room до сих пор нет прямого УНИКАЛЬНОГО ограничения. Ниже приведен мой рабочий код:

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

Приянка Алачия ответила правильно, но мне нужен был образец в Котлине...

Для Котлина:

@Entity(tableName = "newsPapers", indices = arrayOf(Index(value = ["news_paper_name"], unique = true)))

Вот решение Котлина

в котлине:

      @Entity(
    tableName = "newsPapers",
    indices = [
        Index(value = ["news_paper_name"], unique = true)
    ]
)
data 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;
}
Другие вопросы по тегам