我有两个实体,锻炼和锻炼。每次锻炼都可以进行很多锻炼。当我想在两张桌子中插入一个带有练习列表的新训练时,我首先将锻炼数据插入锻炼,然后我尝试将练习插入练习表。
这两个表与练习中的外键相关(exercise_id和Workout中的id)。问题是Workout中的主键是自动生成的,所以当我去插入练习时,我不知道给外键值的内容,除非我也查询了Workout id。这是最好的事情吗?
@Entity(tableName = "workouts")
public class Workout {
@PrimaryKey(autoGenerate = true)
public int id;
...
}
@Entity(tableName = "exercises", foreignKeys = @ForeignKey(entity = Workout.class,
parentColumns = "id",
childColumns = "workout_id"))
public class Exercise {
@PrimaryKey(autoGenerate = true)
public int id;
@ColumnInfo(name = "workout_id")
public int workoutId;
...
}
答案 0 :(得分:0)
在你的WorkoutDao类中,你可以在插入时返回long值(生成的id),如下所示:
@Insert
long insert(Workout work);