我正在使用新的库版本更新我的应用程序,但我的数据库出现问题。已发布的应用程序当前使用带有 FTS4 的 Room 版本 2.2.6。目前有 LONG for rowid
. 该应用程序运行流畅,没有问题。但我想使用 Room 2.3.0 版并根据文档:
FTS 实体表始终有一个名为 rowid 的列,它等效于 INTEGER PRIMARY KEY 索引。因此,一个 FTS 实体只能有一个使用 PrimaryKey 注释的字段,它必须命名为 rowid 并且必须是 INTEGER 亲和性。该字段可以在类中选择性地省略,但仍可在查询中使用。
我应该使用 INT 而不是 LONG。
@Entity(tableName = "visit")
@Fts4
public class Visit {
@PrimaryKey
@ColumnInfo(name = "rowid")
private Long identification; //Change to int
}
有没有办法在不破坏用户数据的情况下更新属性?