gpt4 book ai didi

android - 如何在 Room 中映射 NUMERIC SQLite 类型?

转载 作者:行者123 更新时间:2023-12-02 10:11:11 26 4
gpt4 key购买 nike

我有一个无法更改或迁移的 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 进行映射。

最佳答案

如果您有现有数据库,请使用 SQLite 浏览器打开它,通过选择表并编辑它来更改数据类型(将类型更改为 REAL)。这会保留数据,之后您可以再次使用数据库。

目前,Room 似乎在映射这些数据类型时遇到问题,因此您必须在数据库中显式使用 REAL。

另外,分别在数据对象中注释您的字段可能是个好主意。

@ColumnInfo(typeAffinity = ColumnInfo.REAL)
public double yourField;

关于android - 如何在 Room 中映射 NUMERIC SQLite 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56210722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com