37 lines
1.2 KiB
Kotlin
37 lines
1.2 KiB
Kotlin
package com.dano.test1.data
|
|
|
|
import androidx.room.Database
|
|
import androidx.room.RoomDatabase
|
|
|
|
/*
|
|
Zentrale Room-Datenbank der App. Diese Klasse beschreibt:
|
|
- welche Tabellen (entities) es gibt: Client, Questionnaire, Question, Answer, CompletedQuestionnaire
|
|
- die Datenbank-Version (version = 1) für Migrations/Schema-Updates
|
|
|
|
Über die abstrakten DAO-Getter (clientDao(), questionnaireDao(), …) erhält der Rest der App Typsichere Zugriffe auf die jeweiligen Tabellen.
|
|
|
|
Hinweis:
|
|
- Room erzeugt zur Build-Zeit die konkrete Implementierung dieser abstrakten Klasse.
|
|
- Eine Instanz der Datenbank wird typischerweise per Room.databaseBuilder(...) erstellt und als Singleton verwendet.
|
|
*/
|
|
|
|
@Database(
|
|
entities = [
|
|
Client::class,
|
|
Questionnaire::class,
|
|
Question::class,
|
|
Answer::class,
|
|
CompletedQuestionnaire::class
|
|
],
|
|
version = 1,
|
|
exportSchema = false
|
|
)
|
|
abstract class AppDatabase : RoomDatabase() {
|
|
abstract fun clientDao(): ClientDao
|
|
abstract fun questionnaireDao(): QuestionnaireDao
|
|
abstract fun questionDao(): QuestionDao
|
|
abstract fun answerDao(): AnswerDao
|
|
abstract fun completedQuestionnaireDao(): CompletedQuestionnaireDao
|
|
}
|
|
|