ฉันใช้ไลบรารีคงอยู่ของห้อง 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
}