我正在尝试使用Kotlin在房间数据库中插入用户记录,它工作得很好。
现在,我想返回新插入的记录ID,以检查记录是否已成功插入到房间数据库中。
但是,当我在insert方法中应用long-return类型并运行代码时,得到了以下错误。
错误:方法返回long,但它应返回以下值之一:
void, long[], java.lang.Long[], java.util.List<java.lang.Long>
。如果
您要从查询返回行ID列表,插入
方法只能接收一个参数。
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,在这里我要在房间数据库中插入一条记录
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())
}
}