Если таблицы счетов, доходов и расходов можно объединить, чтобы решить проблему, создав класс данных, содержащий столбцы приведенных таблиц.если есть столбцы с одинаковым именем, переименуйте их в запросе и добавьте обязательное поле в класс данных.
Это пример, в котором у меня есть таблица вопросов, которая может иметь много ответов, но по некоторым причинам,Мне нужно показать ответы с заголовком вопроса в recycleview, поэтому по этой причине я соединил дочернюю таблицу с ее родительской таблицей.
@Dao
interface EvaluationDao {
@Query("select EVALUATION.*,QUESTION.BRIEF_DESCRIPTION,QUESTION.BRIEF_DESCRIPTION_ENG ,QUESTION.CATEGORY_ID,QUESTION.ID AS Q_ID ,QUESTION.HELP_LINK ,QUESTION.QUESTION_TITLE,QUESTION.QUESTION_TITLE_ENG ,QUESTION.WEIGHT from EVALUATION INNER join QUESTION on QUESTION.ID= EVALUATION.QUESTION_ID where EVALUATION.CLINICAL_UNIT_ID = :unitId AND QUESTION.CATEGORY_ID IN (select QUESTION_CATEGORY.ID from QUESTION_CATEGORY where QUESTION_CATEGORY.MODULE_NAME = :moduleName) order by QUESTION.QUESTION_TITLE_ENG")
fun getEvaluations4CinicalUnits(moduleName: String, unitId: String): Flowable<List<EvaluationWithQuestion>>
}
это эквивалентный класс данных
@Parcelize
class EvaluationWithQuestion() : Parcelable {
@Embedded
var evaluation: Evaluation? = null
@ColumnInfo(name = "CATEGORY_ID")
var categoryId: Int = -1
@ColumnInfo(name = "QUESTION_TITLE")
var questionTitleFa: String = ""
@ColumnInfo(name = "QUESTION_TITLE_ENG")
var questionTitleEn: String = ""
@ColumnInfo(name = "HELP_LINK")
var helpLink: String = ""
@ColumnInfo(name = "WEIGHT", typeAffinity = ColumnInfo.REAL)
var weight: Double? = null
@ColumnInfo(name = "BRIEF_DESCRIPTION")
var briefDescriptionEn: String? = null
@ColumnInfo(name = "BRIEF_DESCRIPTION_ENG")
var briefDescriptionFa: String? = null
@ColumnInfo(name = "Q_ID")
var questionId: Int = -1
@Ignore
var rowNum: Int = -1
}