我有三个表Notes
,Tags
和连接表,其中Note
和Tag
的外键名为NoteTagJoin
,但我怎样才能返回所有标签都作为一个响应?
以下是获取注释和标签的查询:
SELECT n.*,t.* FROM notes n INNER JOIN note_tag_join nt ON n.entryId = nt.noteId INNER JOIN tags t ON t.tagId = nt.tagId WHERE n.entryId =:noteId
这里是响应类,必须持有注释和标签列表:
data class NoteResponse(
@Embedded
var note: Note? = null,
@Relation(parentColumn = "entryId", entityColumn = "tagId", entity = Tag::class)
var tags: List<Tag>? = null
)
但是tags
列表在响应时是空的只是注意就在那里,我知道db和Join表中存在的Tags和Note有正确的外键,因为所有其他查询都有效,所以我的猜测是Query错了或NoteResponse
类错误,因为我使用了我不需要的注释@Relation
,但如果我不在标记上添加@Relation
注释,则会抛出错误#39;知道这个列表是什么,怎么做?我找不到任何引用,文档只提到在POJO中嵌入一个类但没有列表的例子,所有类似的帖子只讨论插入列表。