问题标签 [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.
android - 网络pojo类和数据库实体类,如何避免重复
对不起,如果怀疑太概念化,我有点缺乏经验......
我通过改造从 URL 获取 JSON 数据,并且我还想将这些数据存储在我的 SQLite 数据库中。为了创建这个数据库,我将使用新的 Room ORM 映射。
我使用 Android Studio 插件 GsonFormat 提取网络 POJO 类,它生成下面的食谱、成分和步骤类。并生成一些房间实体类(更多下文)
如您所见,两组类几乎相同,带来了大量重复代码。但我也觉得这两组类混合使用并不好。并且 Room 禁止实体对象相互引用,所以如果我想使用第一组类,那就更复杂了……
我的疑问是这些案件一般是如何处理的?
--- Pojo - Gson 可以理解:
--- 房间实体类
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:
应用程序创建:
提前致谢。
android - Android Room - 简单的选择查询 - 无法访问主线程上的数据库
我正在尝试使用Room Persistence Library的示例。我创建了一个实体:
创建了一个 DAO 类:
创建数据库类:
在 Kotlin 中使用以下子类公开数据库:
在我的活动中实现了以下功能:
不幸的是,在执行上述方法时,它会因以下堆栈跟踪而崩溃:
似乎该问题与在主线程上执行 db 操作有关。但是,上面链接中提供的示例测试代码不在单独的线程上运行:
我在这里有什么遗漏吗?我怎样才能让它在没有崩溃的情况下执行?请建议。
android - Android Room - 使用 LIKE 选择查询
我正在尝试进行查询以搜索名称包含文本的所有对象:
留言:
我也在尝试:
留言:
如何解决这个问题?
android - Room 无法验证数据完整性
使用 Room Database 运行程序时出现此错误
看来我们需要更新数据库版本,但是我们可以在 Room 中从哪里进行更新呢?
android - Lombok 无法使用“Android 房间”。给出“错误:找不到字段的吸气剂”
我在带有 gradle 3.0.0-alpha1 的 android studio 3.0 预览中使用 Lombok。我的依赖项中有以下两个注释处理器:
现在,如果我在同一类中使用来自两个依赖项的注释,例如:
它会产生一个错误,即:
但是,如果我删除其中任何一个,它就会正常工作。
有什么想法/解决方案吗?
android - 如何从后台服务更新 ViewModel 的 LiveData 并更新 UI
最近我正在探索谷歌最近推出的 Android 架构。从文档中我发现了这个:
活动可以按如下方式访问此列表:
我的问题是,我要这样做:
在
loadUsers()
函数中我异步获取数据,我将首先检查数据库(房间)中的数据如果我没有在那里获取数据,我将调用 API 从 Web 服务器获取数据。
我会将获取的数据插入数据库(房间)并根据数据更新 UI。
推荐的方法是什么?
如果我开始Service
从该loadUsers()
方法调用 API,我该如何更新MutableLiveData<List<User>> users
变量Service
?
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
没有在该方法的任何地方使用。
编辑:这似乎已在新插件中修复。这里有几个答案是正确的,但我不能接受每一个答案,对不起。
android - 找不到字段的设置器 - 将 Kotlin 与 Room 数据库结合使用
我正在与 Room 持久性库集成。我在 Kotlin 中有一个数据类,例如:
和注释用于 Room 库@Entity
。@PrimaryKey
当我尝试构建时,它失败并出现错误:
我还尝试提供一个默认构造函数:
但这也行不通。需要注意的是,如果我将这个 Kotlin 类转换为带有 getter 和 setter 的 Java 类,它就可以工作。任何帮助表示赞赏!
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()