android-room相关内容

使用LiveData,协程和事务测试Android Room

我想测试我的数据库层,我陷入了22类情况. 测试用例由两部分组成: 保存一些实体 加载实体并断言数据库映射按预期工作 总而言之,问题在于: Insert是suspend方法,这意味着它需要在runBlocking{} 中运行 Query返回结果的LiveData,该结果也是异步的.因此,需要对其进行观察.有一个此 SO问题,说明了如何执行此操作. 为了根据上面的链接观 ..
发布时间:2020-04-26 12:28:07 移动开发

为什么此Android Room插件不起作用?

我实现了具有空间的缓存,但是由于某种原因,它变坏了,要么不插入,要么不获取数据,尽管我已经进行了很多调试,但是仍然没有任何线索...有人可以帮忙吗? ?因此,图片如下: MainActivity: mArticleViewModel = ViewModelProviders.of(this).get(ArticleViewModel.class); mArticleViewModel. ..
发布时间:2020-04-26 12:27:17 移动开发

Kotlin-使用Persistence Room:runtime lib从Room数据库返回新插入的ID

我正在尝试使用Kotlin在Room数据库中插入用户记录,并且运行良好. 现在,我想返回新插入的记录ID,以检查是否已成功将记录插入到Room数据库中. 但是当我在insert方法中应用Long返回类型并在那段时间运行代码时,出现以下错误. 错误:方法返回的时间很长,但是它应该返回以下值之一: void, long[], java.lang.Long[], java.util.L ..
发布时间:2020-04-26 12:22:35 移动开发

Android Room类型转换多种枚举类型

我正在为我的Room数据库编写一个类型转换器.我有几个自定义枚举类,当我将其存储在数据库中时,我想将它们全部转换为其普通形式.因此,除了为每个单个类编写以下代码之外,还有什么方法可以简化它(例如,传递通用枚举类型)? class Converter { @TypeConverter fun toOrdinal(type: TypeA): Int = type.ordinal ..
发布时间:2020-04-26 12:21:16 其他开发

Android Room Database-未解决的参考@Entity和其他注释

我在我的应用中使用Android Room Persistence库(v.1.0.0-alpha1). 尽管运行良好,但是当我在Android Studio中打开模型类(Kotlin Data类)时,它会显示用于Room数据库的所有注释(例如 @Entity , @ColumnInfo 等.我尝试将Arch库的版本更改为1.0.0-alpha5,但结果相同. 在Lint检查中,所有导入的注释 ..
发布时间:2020-04-26 12:20:58 移动开发

Room Persistence @Relation在Java中起作用,但在Kolin中不起作用

基于我之前的问题(),由于反馈,我开始工作了,我在Kolin中实现了相同的示例(请参见下面的代码).我必须进行一些小的更改,例如现在传递给查询的参数,这些参数必须以"p0","p1"等形式传递. 现在在Kotlin中,我得到与UserWithPets类相关的以下错误: 错误:无法弄清楚如何从光标读取此字段. e:私人java.util.List宠物; @Dao interface Us ..

如何检查房间数据库中是否插入了数据

我正在使用我项目中新的Architecture组件中的Room Database. 我正在通过dao添加一些数据,但是在尝试检索它时却没有.您能建议我如何检查插入是否成功吗?以下是可帮助您理解问题的代码. 添加到数据库后,我与调试器进行了检查,该语句已成功执行. appContext.db.rallyDAO().addVehicleListItem(vehicle) 在插入后从此语 ..
发布时间:2020-04-26 12:20:43 移动开发

Room无法选择一个构造函数,因为多个构造函数都是合适的错误

我尝试在我的android kotlin项目中实现持久性库,但是在编译时捕获了此错误: 错误:房间无法选择一个构造函数,因为有多个构造函数 合适的.尝试使用@Ignore注释不需要的构造函数. 错误代码: @Entity data class Site( var name: String = "", var url: String = "", ..

机房数据库全动态查询

我有使用对象硬币的房间数据库. 我想使用参数进行动态查询. 当我使用参数作为值时,它的工作原理非常好,就像这样: @Query("select * from coin ORDER BY percent_change_24h asc limit :numberOfCoins") fun getAllTop(numberOfCoins: Int): Flowable ..
发布时间:2020-04-26 12:03:29 移动开发

为什么Room实体无法在Android中使用不可变属性

我一直在探索房间数据库对象映射库和我觉得有些奇怪. 实体数据模型不能具有不变的属性,如此答案所建议的. 但是我检查了谷歌关于kotlin的持久示例, Room也可以使用不可变的属性.请检查这种行为可能是什么原因? 如果我们可以创建不可变值(val属性),那么这可能是一个好功能,因为这会限制程序员在创建对象后更改唯一标识符(例如id). 解决方案 这很奇怪,因为我可以对所有 ..
发布时间:2020-04-26 11:59:16 移动开发

单元测试室和LiveData

我目前正在使用新的 Android体系结构组件.具体来说,我正在实现一个Room数据库,该数据库在其中一个查询中返回一个LiveData对象.插入和查询工作正常,但是使用单元测试测试查询方法时出现问题. 这是我要测试的DAO: NotificationDao.kt @Dao interface NotificationDao { @Insert fun insertNotifi ..