primaryKeyPosition导致android room数据库架构无效错误
我有一个简单的数据库,几乎没有表。我为表实现了房间实体。我得到了这个错误,它说我的模式无效。但我发现它非常相似,唯一的区别是列顺序和primaryKeyPosition 错误消息(我省略了外键,因为它们相等) 我附上了一张图片来澄清这一区别 正如你所看到的,只有不同之处是 *表1和表2的列顺序不同 *primaryKeyPosition在最后一列中不同 我的实体类primaryKeyPosition导致android room数据库架构无效错误,android,sqlite,android-room,Android,Sqlite,Android Room,我有一个简单的数据库,几乎没有表。我为表实现了房间实体。我得到了这个错误,它说我的模式无效。但我发现它非常相似,唯一的区别是列顺序和primaryKeyPosition 错误消息(我省略了外键,因为它们相等) 我附上了一张图片来澄清这一区别 正如你所看到的,只有不同之处是 *表1和表2的列顺序不同 *primaryKeyPosition在最后一列中不同 我的实体类 @Entity(tableName = "am", foreignKeys = {
@Entity(tableName = "am",
foreignKeys = {
@ForeignKey(entity = ATypes.class,
parentColumns = "a_id",
childColumns = "a_id"),
},
indices = {@Index("a_id")}
)
public class Am {
public String name;
public String symbol;
@PrimaryKey
@ColumnInfo(name = "a_number")
public int aNumber;
@NonNull
@ColumnInfo(name = "a_id")
public Integer aId;
}
我的问题是如何更改列顺序或primaryKeyPosition以匹配预期的架构。如果您使用的是Robolectric,则问题可能是由此问题引起的
我也遇到了同样的问题,我用解决了它。如果您使用的是Robolectric,则问题可能是由此问题引起的
我也遇到了同样的问题,我用解决了。您缺少主键的索引 您缺少主键的索引 你能用你的实体类更新你的问题吗?@HenriqueVasconcellos用实体类更新了我注意到的是你没有索引你的主键,你试过了吗?你们还有其他房间关系吗?如果您需要比较,我可以提供一个工作示例。@HenriqueVasconcellos我现在有两个表。在添加第二个表和关系之前,它工作正常。我将尝试添加索引,这很可能就是问题所在!!如果它不起作用,发布您的关系配置以及您的父实体!你能用你的实体类更新你的问题吗?@HenriqueVasconcellos用实体类更新了我注意到的是你没有索引你的主键,你试过了吗?你们还有其他房间关系吗?如果您需要比较,我可以提供一个工作示例。@HenriqueVasconcellos我现在有两个表。在添加第二个表和关系之前,它工作正常。我将尝试添加索引,这很可能就是问题所在!!如果它不起作用,发布您的关系配置以及您的父实体!我正在使用sqlite和DB Browser(sqlite)进行编辑,因为您的问题没有得到回答,但从屏幕上看,我认为您正在进行测试。如果你正在使用Robolectric,那么这个库将用于测试。我正在使用sqlite和DB Browser(sqlite)来编辑你的问题,但是从屏幕上看,我认为你在做测试。如果您使用的是robolectric,则该库将用于测试
@Entity(tableName = "am",
foreignKeys = {
@ForeignKey(entity = ATypes.class,
parentColumns = "a_id",
childColumns = "a_id"),
},
indices = {@Index("a_id")}
)
public class Am {
public String name;
public String symbol;
@PrimaryKey
@ColumnInfo(name = "a_number")
public int aNumber;
@NonNull
@ColumnInfo(name = "a_id")
public Integer aId;
}