特此记录:
问题:在使用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;
}
帮助:解决方法是在外网看到的,记录的时候找不到网址了,只能抱歉了!