Wie man einen automatisch inkrementierenden Primärschlüssel in Room (Kotlin) erstellt?
Hallo zusammen! Ich bin neu in der Android-Entwicklung mit Kotlin und verwende Room für die lokale Datenspeicherung. Ich habe eine Entity für Benutzer:
```kotlin
@Entity(tableName = "users")
data class User(
@PrimaryKey val id: Int,
val name: String,
val age: Int
)
```
Ich möchte, dass das Feld `id` automatisch inkrementiert wird, wenn ein neuer Eintrag eingefügt wird (wie AUTOINCREMENT in SQLite). Aber wenn ich versuche, einen Benutzer ohne Angabe der id einzufügen, gibt Room einen Fehler aus, weil id ein Pflichtfeld (non-null) ist. Ich habe versucht, id nullable zu machen:
```kotlin
@PrimaryKey val id: Int? = null
```
Aber dann beschwert sich Room, dass der Primärschlüssel nicht nullable sein kann. Ich habe auch die Annotation `@NonNull` ausprobiert, aber das hilft nicht.
Wie konfiguriere ich den Autoinkrement richtig? Muss ich den Datentyp ändern? Oder eine bestimmte Annotation hinzufügen? Ich habe die Dokumentation gelesen, bin aber verwirrt. Bitte helft mir, das zu verstehen!
P.S. Ich verwende die neueste Version von Room (2.6.x) und Kotlin 1.9.x.