我正在尝试使用Kotlin在Room数据库中插入用户记录,并且运行良好。
现在,我想返回新插入的记录ID,以检查是否已成功将记录插入到Room数据库中。
但是当我在insert方法中应用Long返回类型并在那时运行代码时,出现以下错误。
错误:方法返回的时间很长,但是应该返回以下之一:
"use strict"
。如果 您要返回查询中的行ID列表,请插入 方法只能接收1个参数。void, long[], java.lang.Long[], java.util.List<java.lang.Long>
我正在使用此库。
实现“ android.arch.persistence.room:runtime:1.0.0”
public abstract long insertUser(@org.jetbrains.annotations.NotNull()
这是我的插入查询。
kapt "android.arch.persistence.room:compiler:1.0.0"
这是我的addAsyncTask,我在其中将记录插入到Room数据库中
@Insert
fun insertUser(vararg userRegistrationEntity: UserRegistrationEntity):Long;
答案 0 :(得分:4)
如果要插入多个实体,则只能将它们的ID返回到数组或列表中,例如:
@Insert
fun insertUsers(vararg userRegistrationEntities: UserRegistrationEntity): List<Long>
如果一次插入一个实体,则可以以Long
的形式获取其ID:
@Insert
fun insertUser(userRegistrationEntity: UserRegistrationEntity): Long
答案 1 :(得分:0)
基于文档here
使用@Insert注释注释的方法可以返回:
long for single insert operation
long[] or Long[] or List<Long> for multiple insert operations
void if you don't care about the inserted id(s)