Ansichten in einer Datenbank erstellen

Version 2.1.0 und höher des Verfahrens Raumpersistenz Bibliothek bietet Unterstützung für die SQLite-Datenbank Aufrufe, sodass Sie um eine Abfrage in einer Klasse zu kapseln. „Room“ bezieht sich auf diese abfragegestützten Klassen als Ansichten. Sie verhalten sich wie einfache Datenobjekte, wenn sie in einem DAO:

Ansicht erstellen

Um eine Ansicht zu erstellen, fügen Sie den @DatabaseView-Anmerkung einer Klasse hinzufügen. Legen Sie als Wert der Annotation die Abfrage fest, die die Klasse darstellen soll.

Das folgende Code-Snippet ist ein Beispiel für eine Ansicht:

Kotlin

@DatabaseView("SELECT user.id, user.name, user.departmentId," +
        "department.name AS departmentName FROM user " +
        "INNER JOIN department ON user.departmentId = department.id")
data class UserDetail(
    val id: Long,
    val name: String?,
    val departmentId: Long,
    val departmentName: String?
)

Java

@DatabaseView("SELECT user.id, user.name, user.departmentId," +
              "department.name AS departmentName FROM user " +
              "INNER JOIN department ON user.departmentId = department.id")
public class UserDetail {
    public long id;
    public String name;
    public long departmentId;
    public String departmentName;
}

Ansicht mit Ihrer Datenbank verknüpfen

Um diese Ansicht in die Datenbank Ihrer App aufzunehmen, fügen Sie den Parameter views-Property in der Anmerkung @Database:

Kotlin

@Database(entities = [User::class],
          views =[UserDetail::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
}

Java

@Database(entities = {User.class}, views = {UserDetail.class},
          version = 1)
public abstract class AppDatabase extends RoomDatabase {
    public abstract UserDao userDao();
}