android– 如何在Room中查询复杂的嵌套对象?

android– 如何在Room中查询复杂的嵌套对象?,第1张

概述我有几个实体,你可以在下面看到,问题是当你有多个嵌套级别时如何正确选择嵌套列表.如果您在github上查看Google存储库,您可以找到非常简单的示例,但不是复杂的东西.文档说here,Room不允许对象引用.如何获取ResultObject(以及它应该如何看)包括所有嵌套列表?ResultObject应具有以下

我有几个实体,你可以在下面看到,问题是当你有多个嵌套级别时如何正确选择嵌套列表.如果您在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中查询复杂的嵌套对象?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1120230.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存