我在一个应用程序中使用Android的Room库进行数据库交互,但我被如何防止重复项插入到数据库中这个问题卡住了。
我觉得我一定漏掉了什么,因为这似乎应该很容易做到。我已经尝试了与此相关的各种搜索关键字,但没有结果。
本质上,我正在使用一个示例用于插入和查询的操作。
该实体:
@Entity(tableName = "cameras")
public class CameraEntity {
@PrimaryKey(autoGenerate = true)
private int id;
private Integer accountId;
private Integer dvrId;
private String vendorId;
...
}
DAO:
@Dao
public interface CameraDao {
@Query("SELECT * FROM cameras")
Flowable<List<CameraEntity>> getCameras();
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAll(List<CameraEntity> values);
}
在Room库方面,有没有一些方法可以设置规则来确定何时插入数据?我读过一篇帖子提到自动递增ID导致每个项目在主键方面都是唯一的。如果这是真的,那么其他使用该库的人是如何处理的呢?
谢谢!