簡體   English   中英

使用自動生成的主鍵插入2個表

[英]Inserting into 2 tables with auto-generated primary key

我有兩個實體,鍛煉和鍛煉。 每個鍛煉可以進行許多練習。 當我要將帶有鍛煉列表的新鍛煉插入到兩個表中時,我首先將鍛煉數據插入到Workout中,然后嘗試將鍛煉插入到“鍛煉”表中。

這兩個表在“練習”中由外鍵關聯(“鍛煉”中的workout_id和id)。 問題是“鍛煉”中的主鍵是自動生成的,因此當我插入練習時,除非我也查詢“鍛煉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;
  ...
}

在WorkoutDao類中,插入時可以返回long值(生成的id),如下所示:

@Insert
long insert(Workout work);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM