Android Studio:Room数据库自动生成记录ID的配置疑问
Room自动生成ID的配置疑问解答
嘿,咱们来逐个拆解你的问题:
现有配置是否足够实现ID自动生成?
完全够用!你给id字段加上的@PrimaryKey(autoGenerate = true)注解,已经明确告诉Room要自动为这个主键生成递增数值,而且int类型也是Room支持自增主键的有效类型(如果数据量较大,用long会更稳妥)。插入数据时,Room会自动完成ID的生成和赋值,完全不用你手动干预。是否需要在其他类中进行配置?
不需要额外配置啦!只要你的Room数据库类(继承自RoomDatabase的类)在@Database注解的entities数组里包含了Mitglieder,同时Dao层的插入方法正常用@Insert注解定义,整个自增ID的流程就能正常运转。是否需要将id加入构造方法?
完全没必要!你现在写的只包含vorname和nachname的构造方法就足够了。当你调用Dao的插入方法时,Room会自动生成ID并填充到id字段里,创建Mitglieder对象时根本不用手动设置ID值。
另外给你个实用小技巧:如果插入数据后想直接拿到自动生成的ID,可以把Dao里的插入方法返回值设为long(或int),比如:
@Insert long insertMitglied(Mitglieder mitglied);
调用这个方法后,返回的就是这条数据刚生成的主键ID啦。
内容的提问来源于stack exchange,提问作者LordGash
相关产品推荐
相关产品推荐

