У меня есть сущность Task
, у которой есть два внешних ключа:
- первый с
Project
таблицей - второй с
Category
таблицей.
Я создал POJO с отношением к таблице Project
и работает, но я не мог понять, как создать свой собственный POJO, который связан с двумя таблицами.
Я вставляю текущий код Задача (пропустите класс Project и Category)
@Parcelize
@Entity(
tableName = Task.TABLE_NAME,
foreignKeys = [
ForeignKey(
entity = Project::class,
parentColumns = arrayOf("id"),
childColumns = arrayOf("project_id"),
onDelete = CASCADE
),
ForeignKey(
entity = Category::class,
parentColumns = arrayOf("id"),
childColumns = arrayOf("category_id"),
onDelete = NO_ACTION
)
]
)
data class Task(
@PrimaryKey
var id: String = UUID.randomUUID().toString(),
var description: String? = null,
@ColumnInfo(index = true, name = "category_id") var categoryId: String,
@ColumnInfo(index = true, name = "project_id") var projectId: String,
var from: Long,
var to: Long
): Parcelable {
companion object {
const val TABLE_NAME = "tasks"
}
}
и текущий код для связи с Project
table
data class TaskWithProjectAndCategory(
@Embedded
val project: Project,
@Relation(
parentColumn = "id",
entityColumn = "project_id"
)
val tasks: List<Task>
)
Заранее спасибо за ответ.