Android Studio 关于Room的警告: Primary key constraint on grade is ignored when being merged into *

特此记录:

问题:在使用Room架构组建中,AS 警告: Primary key constraint on grade is ignored when being merged into *。

原因:使用了 @Embedded 注解。

解决:在该处添加注解 @SuppressWarnings(RoomWarnings.PRIMARY_KEY_FROM_EMBEDDED_IS_DROPPED)。

@Entity(tableName = "test") // 如果数据库表的名不指定,即 @Entity,默认同类名
public class User {
    @PrimaryKey(autoGenerate = true)
    public int id;
 
    @ColumnInfo(name = "name") // 如果字段名和数据库表的列名相同,可以省略该注解
    public String name;
}
@Entity
public class City {
    @PrimaryKey
    public int id;

    @SuppressWarnings(RoomWarnings.PRIMARY_KEY_FROM_EMBEDDED_IS_DROPPED) // 如果没有该注解,Android Studio编译的时候会报警告,但不影响编译运行。
    @Embedded // 该注解会在数据库表City生成的时候加入User类中各字段对应的列,其中User类里声明的主键在City表中只是作为普通列。
    public User mayor;
}

帮助:解决方法是在外网看到的,记录的时候找不到网址了,只能抱歉了!

你可能感兴趣的:(Android)