Работа с нескольки таблицами в одной БД в 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 шт):

Автор решения: Oleksandr.D

@StudyAndroid!

Если Ваши таблицы в БД не будут зависеть друг от друга, то Вам необходимо лишь добавить еще:

подскажите, как поступить с Dao, надо ли что-то дополнительное прописывать

У каждой таблицы свой Dao. Да, нужно будет создать еще один Dao для новой таблицы.

Для зависимых друг от друга таблиц (Реляционная база данных) следует ознакомиться со статьей.

Удачи Вам!

→ Ссылка