web-dev-qa-db-fra.com

Comment créer une clé composite dans Room tout en utilisant MVVM dans android

Je viens de trouver l'annotation @PrimaryKey dans la salle. Donc, si je veux créer une clé composite, comment puis-je le faire dans MVVM?

27
Lalit Kushwah

Utilisez primaryKeys().

Android Developer Documentation pour Room indique:

Si l'annotation PrimaryKey est utilisée sur un champ Embeddedd, toutes les colonnes héritées de ce champ incorporé deviennent la clé primaire composite (y compris ses champs de petits enfants).

Exemple d'implémentation:

@Entity(primaryKeys = {"column1","column2","column3"})
class DummyClass {
    ...
}

Merci Lalit Kushwah pour l'exemple.

44
Sneh Pandya

Voici un exemple

import Android.Arch.persistence.room.Entity

@Entity(primaryKeys= [ "first_name", "last_name" ] )
class User{
    .......
}
11
Prakash

Cela a fonctionné pour moi J'utilise Kotlin 1.3, je pense.

@Entity(tableName = "location_table", primaryKeys = ["lat", "lon"])
    data class MyLocation(
    //    @PrimaryKey(autoGenerate = true) var id: Long?,
        var lat: Double,
        var lon: Double,
        var dateTime: String,
        var weatherDescription: String,
        var temperature: Double
    )
1
Matt Bussing