Я пытаюсь реализовать базовую 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.
Есть ли способ связать мою запись, чтобы она содержала массив типа поиска, который правильно хранится / обновляется в базе данных?