web-dev-qa-db-fra.com

Comment faire l'incrémentation automatique de la clé primaire lors de l'utilisation des clés primaires composites dans la bibliothèque persistante de la pièce?

J'utilise la bibliothèque persistante Room. J'ai l'obligation d'ajouter deux clés primaires dans une table et l'une des clés primaires doit être incrémentée automatiquement. Je ne connais pas la syntaxe exacte pour y parvenir. Voici ma classe de modèle:

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

Je veux que "news_paper_id" soit incrémenté automatiquement. Comment puis-je le faire?

18
Priyanka Alachiya

J'ai trouvé un autre moyen de contourner ce problème car, à ma connaissance, après quelques recherches, nous ne pouvons pas avoir de propriété d'incrémentation automatique dans les clés primaires composites. J'ai donc utilisé des indices et une contrainte unique ici car Room n'a pas de contrainte UNIQUE directe jusqu'à présent. Voici donc mon code de travail:

@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;
}
24
Priyanka Alachiya