【发布时间】:2019-10-06 05:18:10
【问题描述】:
我有一个无法更改或迁移的 SQLite 数据库,需要使用 Room 将 NUMERIC 列映射到我的 Kotlin 类。我需要使用什么作为 Kotlin 类中字段的数据类型?当使用 Boolean、Integer、Double、String 时,它会失败并显示类似的错误消息:
Expected:
TableInfo{name='calendars', columns={monday=Column{name='monday', type='REAL', affinity='4', ...}
Found:
TableInfo{name='calendars', columns={monday=Column{name='monday', type='NUMERIC', affinity='
编辑: 我想可以更新数据库并更改列类型。但我仍然想知道是否有办法将NUMERIC 与 Room 进行映射。
【问题讨论】:
-
你试过 BigDecimal 吗?
-
@williamxyz 是的,但它不能编译,要我添加一个转换器。但如果我不能将字段映射到任何东西,我就不能做转换器。
-
我有一个无法更改或迁移的 SQLite 数据库。您可以更改(非破坏性),这样做的示例(将布尔值或字节更改为 INTEGER)在这里Can't migrate a table to Room do to an error with the way booleans are saved in Sqlite
标签: android sqlite orm android-room