问题标签 [android-room-prepackageddatabase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android-room - 如何使用 Room 的 prepackagedDatabaseCallback?
使用 2.3.0-alpha03 版本的房间有一个prepackagedDatabaseCallback
它说:-
-
此回调将在复制预包 DB 之后但在 Room 有机会打开它之前调用,因此在调用 RoomDatabase.Callback 方法之前。此回调可用于更新预打包 DB 模式以满足 Room 的模式验证。
那么我怎么能用它来规避预期的无效架构......找到......?
我可以用它来介绍触发器,因为房间没有用于创建触发器的注释吗?
请注意,这旨在作为询问和回答您自己的问题
android - 更新预打包的数据库
我从服务器下载了一个 SQLite 文件,其中包含应用程序周围的所有静态数据。我用它来填充房间数据库。
使用 Room 2.1.0,我曾经将文件复制到数据库目录,并且在使用旧实体的版本上更新 SQLite 文件模式(添加新列)时它工作正常。
现在使用 Room 2.4.0,如果 SQLite 文件架构发生更改,则会抛出异常
IllegalStateException("Pre-packaged database has an invalid schema:")
。
有没有跳过模式验证?
android - 如何保存和读取列表在 Android 的 Room DB 中?
我将 API 响应作为 JSON 对象获取,并且我正在使用模型类在 RecyclerView 中处理它。我将其作为字符串保存到 Room DB。现在我从数据库中选择插入的数据。但是如何处理选定的字符串数据。两者的类型都有一些问题。在选择我正在获取字符串数据作为响应时,但我想以列表类型获取它以在 Recyclerview 中处理它。
使用改造 api 调用获取响应
数据库插入和更新:
}
从数据库中获取数据
此选择数据是 String ,但我想将其转换为 List 格式。
android - 带有多张桌子的预包装房间数据库
(基于:
和
https://gist.github.com/garcia-pedro-hr/9bb5d286d3ea226234a04109d93d020a)
我有一个包含多个表的 .db 文件,我无法思考如何在任何应用程序中实现它,我应该为 .db 文件中的每个表创建一个实体吗?即使每个表都包含精确的列?
例子:
(上面列出的信息是我从“mySQL workbench”得到的)
和表'b'中的一条数据:
和表'c'中的一条数据:
android - Android房间数据库删除不起作用
我正在使用 Room DB 来获取回收站视图。每行都有一个删除图标来删除该项目。我也想从 Room db 中删除相同的项目。我已经完成了下面的代码,但它只反映在列表中,刷新后再次从 db 加载已删除的数据。
带有删除侦听器的适配器类:
数据库道
请帮助我。
kotlin - 房间预打包的数据库有一个无效的架构错误期望类型=整数找到=布尔
我对这个问题有点迷茫。
该Pre-packaged database has an invalid schema
错误具有以下输出:
预期的
成立
我省略了其他一些列,因为它们不是问题并且它们的输出匹配。问题在于预期INTEGER
但找到的列BOOLEAN
。
数据库架构如下:
最初,我确实使用以下类型的列创建了account
Room :@Entity
BOOLEAN
Boolean
然后,第一次抛出错误时,我确实将Boolean
类型列更改为Int
类型:
但是,错误不断发生。我尝试使用此答案迁移单个列,以查看它是否与预期/找到的输出匹配。
但显然迁移不起作用,也没有改变输出中的任何内容,因为错误仍然相同。另外,我不确定哪个是 Room 数据库,哪个是资产数据库。我的直觉是,“找到”输出是与资产匹配的输出,因为BOOLEAN
类型不同,但这并不完全清楚。为什么将 Room@ColumnInfo
值类型从 Boolean 更改为 Int 似乎没有生效?如果需要为BOOLEAN
我的数据库上的每一列类型实现上述迁移,那么为多个表应用迁移的正确方法是什么?(因为我有更多具有这种BOOLEAN
类型的表,尽管它们不在错误中)
android - Android Room:查询在嵌入式字段中返回 null
您好我正在使用 Room DB 并在表中插入一个主键和两个嵌入式字段。在尝试从该表中获取数据时。嵌入的字段返回 null。
表如下:
以及用于在 DAO 中获取数据的查询
并从 Activity 调用:
数据= DatabaseClient.getInstance(getApplicationContext()).getAppDatabase().data().getALL();
请帮我解决这个问题!