【发布时间】:2019-08-11 11:03:08
【问题描述】:
我有以下 POJO、Dao 和数据库。我正在插入房间数据库,但房间每次都会保存两次记录。我已经附加了一个观察者,它显示了重复的值。
Contact.java Contact 表的实体
@Entity
public class Contact {
@PrimaryKey(autoGenerate = true)
@NonNull
private int Id;
public int getId() {
return Id;
}
public void setId(int id) {
Id = id;
}
public String getUsername() {
return Username;
}
public void setUsername(String username) {
Username = username;
}
public String getEmailAddress() {
return EmailAddress;
}
public void setEmailAddress(String emailAddress) {
EmailAddress = emailAddress;
}
public String getPhoneNumber() {
return PhoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
PhoneNumber = phoneNumber;
}
private String Username;
private String EmailAddress;
private String PhoneNumber;
}
ContactDao.java道
@Dao
public interface ContactDao {
@Query("SELECT * FROM Contact")
LiveData<List<Contact>> getContactThatMatchTypedFilled();
@Query("SELECT * FROM Contact")
LiveData<List<Contact>> getAllContacts();
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertNewContact(Contact contact);
@Query("DELETE FROM Contact")
void deleteAll();
}
AppDatabase.java
@Database(entities = {Contact.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
private static AppDatabase instance;
public static AppDatabase getInstance(Context context) {
if (instance == null) {
instance = Room.databaseBuilder(context.getApplicationContext(),
AppDatabase.class, "FirefyDB")
.fallbackToDestructiveMigration()
.allowMainThreadQueries()
.build();
}
return instance;
}
public abstract ContactDao ContactDao();
}
我真的不明白为什么房间会这样做。从昨天开始,我已经尝试了一切。什么都没有发生。
我到底哪里错了?
【问题讨论】:
标签: android-sqlite android-room