1

Ich benutze Zimmer persistente Bibliothek. Ich habe die Anforderung, zwei Primärschlüssel in einer Tabelle hinzuzufügen, und einer der Primärschlüssel sollte automatisch erhöht werden. Ich kenne keine genaue Syntax, um dies zu erreichen. Unten ist meine Modellklasse:Wie wird der Primärschlüssel automatisch erhöht, während die Composite-Primärschlüssel in der Bibliothek "Permanente Bibliothek" verwendet werden?

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

Ich möchte "news_paper_id" automatisch inkrementiert werden. Wie kann ich es schaffen?

+0

Warum brauchen Sie zwei Primärschlüssel? wenn beide gleich sind? –

+0

@KuLdipPaTel Leider habe ich Ihre Frage nicht verstanden. Ich möchte zwei Primärschlüssel, die nicht identisch sind. Eins ist "news_paper_id" und ein anderes ist "news_paper_name". Und ich möchte, dass "news_paper_id" automatisch inkrementiert wird! Ich hoffe, diese Erklärung löscht deine Zweifel. –

+0

check my ans nochmal und versuche es so. –

Antwort

1

Ich fand einen anderen Weg für dieses Problem, da nach meinem Wissen nach einigen R & D, können wir nicht Auto-Inkrement-Eigenschaft in Composite-Primärschlüssel haben. Also habe ich hier Indices und Unique Constraint verwendet, da Room bisher keine direkte UNIQUE-Einschränkung hat. Also unten ist mein Arbeitscode:

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