我有几个实体,你可以在下面看到,问题是当你有多个嵌套级别时如何正确选择嵌套列表.如果您在github上查看Google存储库,您可以找到非常简单的示例,但不是复杂的东西.文档说here,Room不允许对象引用.如何获取ResultObject(以及它应该如何看)包括所有嵌套列表?
ResultObject应具有以下信息:
>列表<对话>
>对话框实体具有List< Message>.
>消息具有列表< ImageContent>.
> ImageContent具有List< ImageContentItem>
对话
@Entity(tablename = "dialog")data class Dialog(@PrimaryKey val ID String, val Title: String)
信息
@Entity(tablename = "message", foreignKeys = [(ForeignKey(entity = Dialog::class, parentColumns ["ID"], childColumns = ["dialogID"]))])data class Message(@PrimaryKey val ID: String, val dialogID: String)
ImageContent
@Entity(tablename = "image_content", foreignKeys = [(ForeignKey(entity = Message::class, parentColumns = ["ID"], childColumns = ["messageID"]))])data class ImageContent(@PrimaryKey val ID: String, val messageID: String)
ImageContentItem
@Entity(tablename = "image_content_item", foreignKeys = [(ForeignKey(entity = ImageContent::class, parentColumns = ["ID"], childColumns = ["imageContentID"]))])data class ImageContentItem(val imageContentID: String, @PrimaryKey(autoGenerate = true) val ID: Long = 1)
DAO:
@Daointerface DialogDao { @query("SELECT * FROM dialog " + "INNER JOIN message ON message.dialogID = dialog.ID " + "INNER JOIN image_content ON image_content.messageID = message.ID " + "INNER JOIN image_content_item ON image_content_item.imageContentID = image_content.ID") fun getDialogallinformation(): Flowable<List<**ResultObject**>>}
解决方法:
房间使用实体/表格,它不允许像您需要的那样管理结构化对象.您唯一能做的就是单独执行查询,然后构建ResultObject.
总结以上是内存溢出为你收集整理的android – 如何在Room中查询复杂的嵌套对象?全部内容,希望文章能够帮你解决android – 如何在Room中查询复杂的嵌套对象?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)