问题标签 [android-room]

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.

0 投票
2 回答
3214 浏览

android - 网络pojo类和数据库实体类,如何避免重复

对不起,如果怀疑太概念化,我有点缺乏经验......

我通过改造从 URL 获取 JSON 数据,并且我还想将这些数据存储在我的 SQLite 数据库中。为了创建这个数据库,我将使用新的 Room ORM 映射。

我使用 Android Studio 插件 GsonFormat 提取网络 POJO 类,它生成下面的食谱、成分和步骤类。并生成一些房间实体类(更多下文)

如您所见,两组类几乎相同,带来了大量重复代码。但我也觉得这两组类混合使用并不好。并且 Room 禁止实体对象相互引用,所以如果我想使用第一组类,那就更复杂了……

我的疑问是这些案件一般是如何处理的?

--- Pojo - Gson 可以理解:

--- 房间实体类

0 投票
2 回答
2557 浏览

java - 房间数据库未实现

我正在尝试使用 googles Android Architecture Components 的新 Room ORM,我遵循了文档,但是当我运行我的代码时,我得到了java.lang.RuntimeException: cannot find implementation for com.zeyad.usecases.app.UserDatabase. UserDatabase_Impl does not exist

这是我的代码:

摇篮项目:

摇篮模块:

用户:

用户数据库:

RoomBaseDao:

应用程序创建:

提前致谢。

0 投票
22 回答
189460 浏览

android - Android Room - 简单的选择查询 - 无法访问主线程上的数据库

我正在尝试使用Room Persistence Library的示例。我创建了一个实体:

创建了一个 DAO 类:

创建数据库类:

在 Kotlin 中使用以下子类公开数据库:

在我的活动中实现了以下功能:

不幸的是,在执行上述方法时,它会因以下堆栈跟踪而崩溃:

似乎该问题与在主线程上执行 db 操作有关。但是,上面链接中提供的示例测试代码不在单独的线程上运行:

我在这里有什么遗漏吗?我怎样才能让它在没有崩溃的情况下执行?请建议。

0 投票
4 回答
59168 浏览

android - Android Room - 使用 LIKE 选择查询

我正在尝试进行查询以搜索名称包含文本的所有对象:

留言:

我也在尝试:

留言:

如何解决这个问题?

0 投票
20 回答
85789 浏览

android - Room 无法验证数据完整性

使用 Room Database 运行程序时出现此错误

看来我们需要更新数据库版本,但是我们可以在 Room 中从哪里进行更新呢?

0 投票
4 回答
1912 浏览

android - Lombok 无法使用“Android 房间”。给出“错误:找不到字段的吸气剂”

我在带有 gradle 3.0.0-alpha1 的 android studio 3.0 预览中使用 Lombok。我的依赖项中有以下两个注释处理器:

现在,如果我在同一类中使用来自两个依赖项的注释,例如:

它会产生一个错误,即:

但是,如果我删除其中任何一个,它就会正常工作。

有什么想法/解决方案吗?

0 投票
5 回答
83977 浏览

android - 如何从后台服务更新 ViewModel 的 LiveData 并更新 UI

最近我正在探索谷歌最近推出的 Android 架构。从文档中我发现了这个:

活动可以按如下方式访问此列表:

我的问题是,我要这样做:

  1. loadUsers()函数中我异步获取数据,我将首先检查数据库(房间)中的数据

  2. 如果我没有在那里获取数据,我将调用 API 从 Web 服务器获取数据。

  3. 我会将获取的数据插入数据库(房间)并根据数据更新 UI。

推荐的方法是什么?

如果我开始Service从该loadUsers()方法调用 API,我该如何更新MutableLiveData<List<User>> users变量Service

0 投票
9 回答
9680 浏览

android - Android Room:查询中的每个绑定变量都必须有一个匹配的方法

我正在使用Room带有 Kotlin 的 android 持久性库。

Dao看起来像这样

对我来说似乎很好,但我收到了这个错误

Error: Each bind variable in the query must have a matching method parameter. Cannot find method parameters for :countryId.

我可以看到参数被命名为countryId,那么可能是什么问题?

仅供参考:这是 CountryDao_Impl.java 中生成的代码

在这个方法中,我看到arg0没有在该方法的任何地方使用。

编辑:这似乎已在新插件中修复。这里有几个答案是正确的,但我不能接受每一个答案,对不起。

0 投票
16 回答
34642 浏览

android - 找不到字段的设置器 - 将 Kotlin 与 Room 数据库结合使用

我正在与 Room 持久性库集成。我在 Kotlin 中有一个数据类,例如:

和注释用于 Room 库@Entity@PrimaryKey当我尝试构建时,它失败并出现错误:

我还尝试提供一个默认构造函数:

但这也行不通。需要注意的是,如果我将这个 Kotlin 类转换为带有 getter 和 setter 的 Java 类,它就可以工作。任何帮助表示赞赏!

0 投票
4 回答
9522 浏览

android - Android Room with RxJava handle empty query result

Trying to test new Android Room librarty with RxJava adapter. And I want to handle result if my query returns 0 objects from DB:

So here is DAO method:

And how I handle it:

My DB is empty, so I expect .switchIfEmty() to work, but none of handling methods is firing. Neither .subscribe() nor .switchIfEmpty()