一对多关系的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
所以我的问题是,如果包含练习的训练实例被删除,相关的练习也会被删除吗?如果没有,这将如何实现
谢谢当您为表格练习创建了一个
外键时,练习也将被删除