我正在尝试使用 Kotlin 在 Room 数据库中插入用户记录,它工作得很好。
现在我想返回新插入的记录id来检查Room数据库中的记录是否成功插入。
但是当我在插入方法中应用 Long 返回类型并运行代码时,我收到以下错误。
错误:方法返回 long,但应返回以下内容之一:void, long[], java.lang.Long[], java.util.List<java.lang.Long>
。如果
您想要从查询中返回行 ID 列表,您的插入
方法只能接收 1 个参数。
public abstract long insertUser(@org.jetbrains.annotations.NotNull()
我正在使用这个库。
实现“android.arch.persistence.room:runtime:1.0.0”
kapt "android.arch.persistence.room:compiler:1.0.0"
这是我的插入查询。
@Insert
fun insertUser(vararg userRegistrationEntity: UserRegistrationEntity):Long;
这是我的 addAsyncTask,我在 Room 数据库中插入一条记录
private fun userRegistration(userRegistrationEntity: UserRegistrationEntity) {
addAsyncTask(appDatabase!!).execute(userRegistrationEntity)
}
private class addAsyncTask constructor(private val appDatabase: AppDatabase) : AsyncTask<UserRegistrationEntity, Void, Long>() {
override fun doInBackground(vararg params: UserRegistrationEntity): Long? {
// val a = appDatabase.userRegistrationDao().addUser(params[0]);
val newReturnId = appDatabase.userRegistrationDao().insertUser(params[0]);
return newReturnId
}
override fun onPostExecute(result: Long?) {
super.onPostExecute(result)
Log.d("value", result.toString())
}
}