您可以将嵌入式关系放到Android Room中的另一个嵌入式关系中吗?

时间:2018-12-10 07:21:13

标签: kotlin android-room android-database android-jetpack

Android会议室可让您按以下方式将多对一相关实体提取到一个实体中:

data class StrokeAndEvents(
    @Embedded
    var stroke: Stroke = Stroke(-1,-1),
    @Relation(
            parentColumn = "id",
            entityColumn = "strokeId",
            entity = Event::class
    )
    var events: List<Event> = listOf()
)

这将返回一个具有Stroke的对象以及属于Stroke的所有事件的列表。

我想知道的是,我可以在另一个数据类中使用该对象吗?该数据类又在另一个数据类内部,向上遍历图,直到最终我拥有一个包含所有子项的整个图的单个数据类我父母项目的所有孩子中的所有孩子。

我已经尝试过了,但是返回了一个错误:

data class PageAndStrokes(
    @Embedded
    var page: Page = Page(-1,-1, -1),
    @Relation(
            parentColumn = "id",
            entityColumn = "pageId",
            entity = StrokeAndEvents::class
    )
    var strokes: List<StrokeAndEvents> = listOf()
)

错误是这样的:error: There is a problem with the query: [SQLITE_ERROR] SQL error or missing database (no such table: StrokeAndEvents)

有没有办法让它查找另一个对象而不是表?

提前谢谢!

约翰

0 个答案:

没有答案