Я бился головой об это последние несколько дней.У меня довольно простая установка Android Room.Вот моя сущность:
Entity(tableName = "some_table")
public class SomeClass {
@PrimaryKey(autoGenerate = true)
@NonNull
int id;
// Other member variables
public SomeClass() {
}
public int getId(){
return id;
}
public void setId(int id){
this.id = id;
}
}
Мой Дао также довольно прост:
@Dao
public interface SomeClassDao {
@Query("SELECT * FROM some_table")
List<SomeClass> getAll();
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAll(List<SomeClass> someClass);
@Update
void update(SomeClass someClass);
@Delete
void delete(SomeClass someClass);
}
И с моей базой данных тоже ничего не происходит:
@Database(entities = {SomeClass.class}, version = 1)
public abstract class SomeClassDatabase extends RoomDatabase {
public static final String DATABASE_NAME = "someApp";
public abstract SomeClassDao getDao();
}
Я создаю свою базу данных в пределах onCreate()
моего класса приложения:
public class SomeApp extends Application {
private static SomeClassDatabase sDatabase;
@Override public void onCreate() {
super.onCreate();
Stetho.initializeWithDefaults(this);
sDatabase = Room.databaseBuilder(this, SomeClassDatabase.class, SomeClassDatabase.DATABASE_NAME).build();
}
public static ForecastDatabase getDatabase(){
return sDatabase;
}
}
Затем я вставляю данные в свою БД, используя RxJava в моей основной деятельности.Я не думаю, что эта часть будет источником проблемы.Если да, пожалуйста, дайте мне знать, и я обновлю свой пост.
Проблема, с которой я сталкиваюсь, заключается в том, что при проверке базы данных с использованием Stetho у меня есть не один, а два столбца для моего первичного ключа.Других повторяющихся столбцов нет, кроме переменной id
, равной SomeClass
- все остальное в порядке.Кто-нибудь знает, почему это происходит?Любое понимание этого будет с благодарностью.