房间数据库更新问题

时间:2018-05-07 13:09:33

标签: java android

在android Room中更新实体的多个字段。

我正在为我的新项目使用android房间持久性库。我想更新表的多个字段。我在Dao中尝试过 -

@Query(" UPDATE " + TABLE_ACC_NO_DEBIT_CARD_LINK + " SET id = :id , device_id = :device_id 
,transaction_key = :transaction_key , mobile = :mobile , email = :email 
,account_no = :account_no , debit_card = :debit_card , bank = :bank 
,is_uploaded = :is_uploaded WHERE device_id = :device_id AND account_no=:account_no")

int updateAccNoDebitCardLink( String device_idc, String account_noc
,String id,String device_id ,String transaction_key
,String mobile,String email,String account_no,String debit_card, String bank
,String is_uploaded);

例如

@Query(UPDATE TABLENAME <place_holder>)
int updateObject(ObjetEntity objectEntity,String field);

我应该代替什么,以便新的objectEntity被字段值匹配的旧的objectEntity替换

2 个答案:

答案 0 :(得分:0)

试试这段代码..

@Update
void updateData(MyTable myTable);

并将所有数据放入myTable类对象并将其传递给updateData方法..

    @Query("update Comment set fname=:fname where id=:id")
void update data(String fname,int id);

答案 1 :(得分:0)

尝试以这种方式更新表的值。以下是科特林语言的示例。

   @Query("UPDATE Test SET test_name=:arg1,test_startDate=:arg2,test_endDate=:arg3,test_location=:arg4 WHERE testId = :arg0")
   fun updateTest( testId: Int,testName:String,testStartTime:String,testEndTime:String,testLocation:String)

testId,test_name,test_startDate,test_endDate,test_location是名为Test的表的字段。