Room DB хранит / извлекает предметы из справочной таблицы - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь реализовать базовую c sql структуру в библиотеке базы данных Room для android, и я сталкиваюсь с некоторыми концептуальными проблемами, которые я не смог решить самостоятельно. У меня есть две таблицы и связанные сущности, одна таблица - справочная таблица, а другая - базовая c сущность, как показано ниже

create table entry (
    id int primary key,
    address varchar(100),
    account_no varchar(25),
    phone_no varchar(25)
);
create table lookup (
    id int not null,
    d_val int not null,
    ret_month varchar2(20)
);

Моя запись dao

@Dao
public interface EntryDAO {

    @Insert(onConflict = OnConflictStrategy.IGNORE)
    void insert(Entry entry);

    @Delete(entity = Entry.class)
    void delete(Entry entry);

    @Update(entity = Entry.class)
    void update(Entry entry);

    @Query("DELETE FROM entries")
    void deleteAll();

    @Query("SELECT * FROM entries")
    LiveData<List<Entry>> getEntries();

}

Мой класс записи

@Entity(tableName = "entries")
public class Entry {

    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = "id")
    private Integer id;

    @ColumnInfo(name = "address")
    private String mAddress;

    @ColumnInfo(name = "account_no")
    private String mAccountNumber;

    @ColumnInfo(name = "phone_no")
    private String mPhone;

    //getters and setters, full constructor
}

Мой объект поиска

@Entity(tableName = "lookup")
public class Lookup {

    @ColumnInfo(name = "id")
    private int id;

    @ColumnInfo(name = "d_val")
    private int d_val;

    @ColumnInfo(name = "ret_month")
    private String month;

    //getters/setters
}

В настоящее время у меня есть класс записи, который корректно загружается / хранится в базе данных, но каждая запись будет иметь несколько значений в таблице поиска , что означает, что в обычном приложении я должен был бы объявить массив в классе записи для хранения каждой записи, однако я не нашел подходящего метода для этого в Room.

Есть ли способ связать мою запись, чтобы она содержала массив типа поиска, который правильно хранится / обновляется в базе данных?

...