Android Room 使用@Update 更新部分字段

从Android Room的2.2.0版本开始,@Update注解支持部分更新实体数据,不再需要更新全部字段。通过在DAO方法的参数中使用POJO,包含需要修改的主键和特定字段,实现对数据库记录的部分更新。
摘要由CSDN通过智能技术生成

在之前的Room版本中,如果在dao 中 使用@update 会更新关联的主键数据的那一行的所有数据

但是在 androidx.room:room-*:2.2.0 之后,我们可以做到部分更新

官方解释如下

目标实体:DAO 注释 @Insert@Update 和 @Delete 现在具有一个新属性 targetEntity,可用于指定要采用 DAO 方法的目标表。这样一来,这些 DAO 方法的参数就可以是任意 POJO,这些 POJO 将被解释为部分实体。实际上,这允许部分插入、删除和更新

举例如下:

@Entity
class FriendRequest (
    @PrimaryKey
    @NotNull
    val fromUserName: String
) {
    var toUserName = ""
    var userFaceUrl = ""
    var userSex = 1
    var userSelfSignature = ""
    var userBirthday = ""
    var notes = ""
    var addTime = 0L
    var status = STATUS_VERIFY_NONE
}


data class FriendRequestStatus(val fromUserName: String, val status: Int)

data class FriendRequestProfile(val fromUserName: String,
  
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值