Autogenerate = true不会在会议室中设置插入实体的ID

时间:2018-09-22 10:44:34

标签: insert entity primary-key android-room auto-generate

我正在使用RoomDAO插入实体,并且可以获取自动生成的ID:

@Insert(onConflict = OnConflictStrategy.ABORT)
long insert(Category category);

但是在insert()调用之后,不会自动设置Category.id:

Category cat = new Category();
long newId = dao().insert(cat);
// newId is a new id, 63 for instance
// cat.id is still 0

我必须通过Dao明确地再次加载该实体,以查看一个不为null的id:

cat = dao().getCategoryById(newId);
// cat.id is 63

模型:

@Entity(tableName = "category")
public class Category {
  @PrimaryKey(autoGenerate = true)
  public int id;
  ...

是否可以指示Room立即填充cat.id?还是我使用了错误的模式?

0 个答案:

没有答案