Как мне написать отношение один ко многим, где множество - это pojo двух других встроенных сущностей? Может быть несколько B для одного A, но только один B для одного A в каждом списке данных.
Вот упрощение моего кода.
@Entity(tableName = "as")
public class A{
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "a_id")
private int mId;
@ColumnInfo(name = "a_type")
private String mType;
//getters and setters
}
@Entity(tableName = "bs")
public class B{
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "b_id")
private int mId;
@ColumnInfo(name = "b_type")
private String mType;
@ColumnInfo(name = "list_id")
private int mListId;
//getters and setters
}
@Entity(tableName = "data_lists")
public class DataList{
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "data_list_id")
private int mId;
//getters and setters
}
public class AandB {
@Embedded
private A mA;
@Embedded
private B mB;
//getters and setters
}
public class DataListWithAandBs{
@Embedded
private DataList mDataList;
@Relation(
parentColumn = "data_list_id",
entityColumn = "list_id")
private List<AandB> mAandBList;
//getters and setters
}
@Dao
public interface DataListWithAandBsDao {
@Query("SELECT * FROM data_lists LEFT JOIN (SELECT * FROM as LEFT JOIN bs ON a_type = b_type) ON list_id = data_list_id")
LiveData<List<DataListWithAandBs>> getDataListsWithAsandBs();
}
Когда я компилирую, я получаю сообщение об ошибке: класс должен быть либо @Entity, либо @DatabaseView. Я не хочу, чтобы список был сущностью, хотя я хочу, чтобы это был список Pojos. Можно ли это сделать с комнатой?