Android Удаление каскада номеров для отношений один ко многим - PullRequest
0 голосов
/ 15 апреля 2020

Скажем, у меня есть две сущности: Тренировка и Упражнение, и между Тренировкой (одна) и Тренировкой (многие) существует связь один ко многим. Объекты настроены следующим образом:

Объект тренировки:

@Entity(
    tableName = "workouts",
    indices = [Index("startDate")]
)
data class Workout(
    @PrimaryKey
    val startDate: String,

    val workoutName: String
)

Объект упражнения:

@Entity
data class Exercise(
    @PrimaryKey(autoGenerate = true)
    val exerciseId: Long = 0,

    val workoutId: String,

    val name: String
)

Тренировка с упражнениями:

@Entity(
    foreignKeys = [ForeignKey(
        entity = Workout::class,
        parentColumns = arrayOf("startDate"),
        childColumns = arrayOf("workoutId"),
        onDelete = ForeignKey.CASCADE
    )]
)
data class Exercise(
    @PrimaryKey(autoGenerate = true)
    val exerciseId: Long = 0,

    val workoutId: String,

    val name: String
)

Это Вот как я получаю упражнения, относящиеся к тренировке:

@Transaction
@Query("SELECT * FROM workouts WHERE startDate = :startDate")
suspend fun getWorkoutWithExercises(startDate: String): WorkoutWithExercises

Итак, мой вопрос: если экземпляр тренировки, содержащий упражнения, будет удален, будут ли удалены связанные упражнения? Если нет, то как бы это было достигнуто?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...