我使用协程和Room保存应用程序的用户个人资料数据。我具有CompleteProfileActivity:在该用户中填写他们的信息并确认(确认按钮)。我将它们发送到服务器并观察响应。如果响应成功。我将它们保存到我的ProfileDatabase中。
@Dao
interface ProfileDao {
@Insert(onConflict = OnConflictStrategy.IGNORE)
fun saveProfile(model:Profile)
@Query("SELECT * FROM profile_table")
fun getProfile():Deferred<Profile>
}
最佳答案
如果该方法调用成功插入,则说明该操作成功,否则您将获得异常。
同样,这些也不必是返回空隙的方法。
您可以让@Insert
返回表中主键的类型,该键将成为新插入的记录的键。
@Insert(onConflict = OnConflictStrategy.IGNORE)
fun saveProfile(model: Profile): Int
如果是
@Delete
,那么如果您返回Int
,它将返回删除的行数:@Delete
fun deleteProfiles(profiles: List<Profile>): Int
使用
@Query
进行更手动的实现也是如此,如果返回Int
,则返回受影响的行数:@Query("DELETE FROM profiles")
fun deleteAllProfiles(): Int