如何使用room自动迁移删除多个列

3df52oht  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(471)

注意:房间自动迁移在alpha-2.4.0-alpha04中
我删除了两个不同表中的两列。我试着重复这句话 @DeleteColumn 注解,像这样

@DeleteColumn(tableName = "User", columnName = "phone")
    @DeleteColumn(tableName = "Product", columnName = "description")
    @DeleteTable(tableName = "Category")
    class TestRoomAutoMigration: AutoMigrationSpec {   }

但是我得到了这个错误

Repeatable annotations with non-SOURCE retention are not yet supported

问题
如果无法使用自动迁移重复注解,如何删除多个列

unhi4e5o

unhi4e5o1#

kotlin还没有添加对具有与java相同语法的可重复注解的完全支持。因此,我们必须使用容器注解,如下所示:

@DeleteColumn.Entries(
    DeleteColumn(tableName = "User", columnName = "phone"),
    DeleteColumn(tableName = "Product", columnName = "description"),
)
@DeleteTable(tableName = "Category")
class TestRoomAutoMigration: AutoMigrationSpec {   }

这一问题首先在谷歌问题跟踪链接上得到了回答

相关问题