kotlin - 无法在 Room dao 界面中使用 Completable
问题描述
我正在尝试在带注释的方法Completable
上使用 Dao 类,@Insert
但是在尝试编译项目时,出现此错误:
error: Methods annotated with @Insert can return either void, long, Long, long[], Long[] or List<Long>.
public abstract io.reactivex.Completable insert(@org.jetbrains.annotations.NotNull()
这是我的相关代码:
@Insert
fun insert(kanal: Kanal): Completable
@Update
fun update(kanal: Kanal): Completable
@Delete
fun delete(kanal: Kanal): Completable
还有我的依赖:
def room_version = "1.1.1"
implementation "android.arch.persistence.room:runtime:$room_version"
kapt "android.arch.persistence.room:compiler:$room_version"
implementation "android.arch.persistence.room:rxjava2:$room_version"
implementation 'io.reactivex.rxjava2:rxkotlin:2.2.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
根据此链接,它由 Room 支持。
解决方案
@Insert、@Update 和@Delete 方法:Room 2.1.0 及更高版本支持 Completable、Single 和 Maybe 类型的返回值。
将您的房间从1.1.1
to2.1.0
或更高更新,它将起作用。
推荐阅读
- html - Dompdf在页面之间生成空白页
- python - 检查屏幕输入字符串中是否存在单元格内容 - Python Pandas
- hyperledger-fabric - Hyperledger Fabric 交易速度
- android - 如何在android中动态地从数据库值填充AnyChart?
- c# - C# WPF datagrid 查找和删除行
- javascript - 无法从列表项中的已提交表单中获取表单值
- react-native - 嵌套导航不适用于本机反应
- android - 如何解决 Android 10 上的 KeyStoreConnectException?
- android - Android 对话框显示进度阶段并取消
- perl - 如何使用 perl 中的私钥和密码通过 sftp 连接?