Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一对多关系的Android房间级联删除_Android_Kotlin_Android Sqlite_Android Room - Fatal编程技术网

一对多关系的Android房间级联删除

一对多关系的Android房间级联删除,android,kotlin,android-sqlite,android-room,Android,Kotlin,Android Sqlite,Android Room,假设我有两个实体,锻炼和锻炼,锻炼(一)和锻炼(多)之间存在一对多的关系。实体的设置如下所示 训练实体: @Entity( tableName = "workouts", indices = [Index("startDate")] ) data class Workout( @PrimaryKey val startDate: String, val workoutName: String ) 行使实体: @Entity data class Exe

假设我有两个实体,锻炼和锻炼,锻炼(一)和锻炼(多)之间存在一对多的关系。实体的设置如下所示

训练实体:

@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
所以我的问题是,如果包含练习的训练实例被删除,相关的练习也会被删除吗?如果没有,这将如何实现


谢谢

当您为表格练习创建了一个
外键时,练习也将被删除