android update 原字段=1,更新Android Room中实体的某些特定字段

我正在为新项目使用android房间持久性库。

我想更新表的某些字段。

我已经尝试过在Dao中-

// Method 1:

@Dao

public interface TourDao {

@Update

int updateTour(Tour tour);

}

但是,当我尝试使用此方法进行更新时,它将更新与巡回对象的主键值匹配的实体的每个字段。

我用过@Query

// Method 2:

@Query("UPDATE Tour SET endAddress = :end_address WHERE id = :tid")

int updateTour(long tid, String end_address);

它正在工作,但由于我实体中有许多字段,因此我的情况下将有很多查询。 我想知道如何更新某些字段(不是全部),例如Method 1,其中id = 1; (id是自动生成的主键)。

// Entity:

@Entity

public class Tour {

@PrimaryKey(autoGenerate = true)

public long id;

private String startAddress;

private String endAddress;

//constructor, getter and setter

}

如何更新表中的列表。 实际上,我已经通过TypeConverter在Table中插入了列表。 但是在进行更新时无法正常工作。 如果遇到任何此类问题,请提出建议。

@ AmanGupta-ShOoTeR对于上述评论,您有任何解决方案吗?

我的图书馆Kripton Persistence Library的工作原理与该Room库非常相似。 如果您想了解我如何使用Kripton解决此问题,请访问abubusoft.com/wp/2019/10/02/

@ AmanGupta-ShOoTeR我在使用@Query更新时遇到了此类问题。 然后我使用@Insert(onConflict = OnConflictStrategy.REPLACE)通过创建具有相同主键值而不是update的对象来工作

根据SQLite更新文档:

@Query("UPDATE tableName SET

field1 = :value1,

field2 = :value2,

...

//some more fields to update

...

field_N= :value_N

WHERE id = :id)

int updateTour(long id,

Ty

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值