我试图从某个表中删除“@Embedded”对象
class MigrateFrom28To29 : AutoMigrationSpec
示例:
@Entity
data class A(
@PrimaryKey var a: String,
var b: String,
@Embedded(prefix = "c_") var c: C
)
data class C (
val a: String,
val b: String,
val c: String,
): Serializable
在我的迁移类中添加注释:
@DeleteColumn(tableName = "A", columnName = "c_a")
@DeleteColumn(tableName = "A", columnName = "c_b")
@DeleteColumn(tableName = "A", columnName = "c_c")
class MigrateFrom28To29 : AutoMigrationSpec
当 C 类很复杂并且有很多成员时,有什么简单的方法可以做到这一点(不将每个成员添加到DeleteColumn)?
不认为有办法做到这一点,但你可以使用
@DeleteColumn.Entries(
DeleteColumn(tableName = "A", columnName = "c_a"),
DeleteColumn(tableName = "A", columnName = "c_b"),
DeleteColumn(tableName = "A", columnName = "c_c"),
)