Я использую библиотеку Android Room для взаимодействия с базой данных в приложении, и я в некотором роде озадачен тем, как предотвратить вставку повторяющихся записей в базу данных.
Я чувствую, что мне что-то не хватает, потому что это должно быть просто сделать. Я искал в Google различные комбинации слов, относящихся к теме, но безрезультатно.
По сути, я использую то, что делает один из примеров, для вставки и запросов.
Лицо:
@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, есть ли способ установить некоторые правила, когда следует вставлять данные? В одном сообщении, которое я прочитал, упоминалось, что идентификатор автоматического увеличения делает каждый элемент уникальным с точки зрения первичного ключа. Если это правда, то как другие используют эту библиотеку с учетом этого?
Спасибо!
CameraEntity
запись отредактирована. - person CommonsWare   schedule 24.10.2017