首页 > 解决方案 > 如何实现重复的内部类?

问题描述

数据层次结构是:

  1. 地方
    • ID
    • 姓名
    • 图片
      • original_image
        • ID
        • image_url
        • 宽度
        • 高度
      • thumbnail_image
        • ID
        • image_url
        • 宽度
        • 高度

original_image 等于 thumbnail_image。

我的地方课是

@Entity
class PlaceEntity(.....) {
    @PrimaryKey
    var id: Int = id

    var name: String = name

    @Embedded
    var images: Images = images
}

我的图片课是

class Images(.....) {
    @Relation(parentColumn = "origin_id", entityColumn = "id")
    var original: Image = original

    @Relation(parentColumn = "thumb_id", entityColumn = "id")
    var thumbnail: Image = thumbnail
}

我的图像类是

class Image(.....) {
    var id: Int = id
    var url: String = url
    var width: Int = width
    var height: Int = height
}

当我编译这个项目时,房间库返回错误

origin_id错误:在 com.test.room.entity.Images 中找不到父实体列。选项:私人 com.test.room.entity.Image 原创;

thumb_id错误:在 com.test.room.entity.Images 中找不到父实体列。选项:私人 com.test.room.entity.Image 缩略图;

错误:实体和 POJO 必须具有可用的公共构造函数。您可以有一个空的构造函数或参数与字段匹配的构造函数(按名称和类型)。公共最终类图像{

标签: androidkotlinandroid-room

解决方案


将您的“图像”类用作实体,就像“PlaceEntity”一样。


推荐阅读