Скажем, у меня есть две сущности: Тренировка и Упражнение, и между Тренировкой (одна) и Тренировкой (многие) существует связь один ко многим. Объекты настроены следующим образом:
Объект тренировки:
@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
Итак, мой вопрос: если экземпляр тренировки, содержащий упражнения, будет удален, будут ли удалены связанные упражнения? Если нет, то как бы это было достигнуто?
Спасибо