我正在使用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
?还是我使用了错误的模式?