假设我有两个实体,锻炼和锻炼,锻炼(一个)和锻炼(多个)之间存在一对多的关系。实体的设置如下所示
锻炼实体:
@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所以我的问题是,如果删除了包含练习的锻炼实例,那么相关的练习也会被删除吗?如果不是,这将如何实现?
谢谢
发布于 2020-11-26 16:07:46
这些练习也将被删除,因为您已经为表练习创建了Foreign Key。
https://stackoverflow.com/questions/61217367
复制相似问题