Трудно сказать, не видя реальных ошибок, которые вы получаете, но я предполагаю, что ваша проблема связана с несколькими методами вставки для разных сущностей в одном и том же DAO.
Вместо того, чтобы делать это:
@Dao
public interface WrongDAO {
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertShop(ShopModel shop);
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAbout(AboutEntity about);
@Query("Select * From shops")
LiveData<List<ShopModel>> getShopsData();
}
В общем, вы всегда должны создавать разные DAO для каждой сущности , чтобы ваш код был более организованным:
@Dao
public interface ShopDAO {
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertShop(ShopModel shop);
@Query("Select * From shops")
LiveData<List<ShopModel>> getShopsData();
}
@Dao
public interface AboutDAO {
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAbout(AboutEntity about);
}
Я не являюськонечно, обязательно ли это в Room, но пока все примеры, которые я видел, имеют один DAO для каждой сущности, поэтому я, вероятно, буду придерживаться этого.
Из официальной документации :
Рекомендуется иметь несколько классов Dao в вашей кодовой базе в зависимости от таблиц, к которым они прикасаются.
Чтобы это работало правильно, не забудьте включить все ваши DAO в декларацию вашегоБаза данных номеров!