Работа с нескольки таблицами в одной БД в room
подскажите, пожалуйста, каким образом привязать более 1 таблицы к бд и работать с ними?
Код Database:
@androidx.room.Database(entities = {Apiary.class, Fam.class}, version = 1) //предположил, что сюда ее нужно добавить
public abstract class AppDatabase extends RoomDatabase {
public abstract DBDao DBDao();
}
2 таблицы:
@Entity
public class Fam {
@PrimaryKey
public long id;
public long number;
public String type;
public long date_add;
public String poroda;
public long matka_year;
}
и
@Entity
public class Apiary {
@PrimaryKey
public long id;
public String name;
public long kol_fams;
}
Dao:
@androidx.room.Dao
public interface DBDao {
@Query("SELECT * FROM Apiary")
List<Apiary> getAllfromApiary();
@Insert(onConflict = OnConflictStrategy.IGNORE)
void insert_apiary(Apiary ap);
@Insert(onConflict = OnConflictStrategy.IGNORE)
void insert_fam(Fam fam); //сделал так, но сомневаюсь, что будет работать
@Update
void update_apiary(Apiary ap);
@Update
void update_fam(Fam fam); // и тут
@Delete
void delete(Apiary ap);
}
Изначально в бд было только Apiary, сейчас появилась необходимость добавить еще 1 таблицу, подскажите, как поступить с Dao, надо ли что-то дополнительное прописывать или так как сделал я будет работать? Проверить не могу, т.к. пока нет возможности для этого (работаю), заранее прошу прощения за возможно глупый вопрос. Спасибо!
Ответы (1 шт):
@StudyAndroid!
Если Ваши таблицы в БД не будут зависеть друг от друга, то Вам необходимо лишь добавить еще:
- один
AnotherItemDao - один
AnotherItemEntiry - добавить
AnotherItemDaoвAppDatabase
подскажите, как поступить с Dao, надо ли что-то дополнительное прописывать
У каждой таблицы свой Dao. Да, нужно будет создать еще один Dao для новой таблицы.
Для зависимых друг от друга таблиц (Реляционная база данных) следует ознакомиться со статьей.
Удачи Вам!