我正在将RoomDB与协程一起使用。我的代码如下所示-
@Dao
interface AccountDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insertAccountData(accountModel: AccountModel)
@Query("DELETE FROM accountTable")
suspend fun deleteAccountData()
@Query("SELECT * FROM accountTable")
suspend fun getAccountData(): Deferred<AccountModel>
}
//从我班上
override suspend fun retrieveAccountData(): AccountModel {
return accountDao.getAccountData().await()
}
我如何返回或返回什么以从DAO中插入或删除,以使我知道插入或删除成功?
答案 0 :(得分:0)
如果@Insert
方法仅接收1个参数,则它可以返回Long
,它是插入项的新rowId。如果参数是数组或集合,则应返回Long[]
或List<Long>
。
@Delete
方法返回一个Int
,指示从数据库中删除的行数。
因此,您的Dao
应该如下所示:
@Dao
interface AccountDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
suspend fun insertAccountData(accountModel: AccountModel): Long
@Delete
suspend fun deleteAccountData(accountModel: AccountModel): Int
@Query("SELECT * FROM accountTable")
suspend fun getAccountData(): Deferred<AccountModel>
}