【问题标题】:ObjectBox Always return null for inner data classes in KotlinObjectBox 在 Kotlin 中始终为内部数据类返回 null
【发布时间】:2018-12-13 11:32:54
【问题描述】:

我正在使用 Retrofit 进行 API 调用。 我能够缓存仅包含字符串和 int 的数据类。 但是现在我想缓存另一个具有嵌套模型类的模型类,例如 下面。

@Entity data class ConsumptionDashboardResponse(
        @Id(assignable = true)
        var id: Long? = null,
        @Transient
        @SerializedName("data")
        @NameInDb("data_consumption")
        var `data`: DataConsumption,
        @SerializedName("responseCode")
        val responseCode: Int,
        @SerializedName("responseDesc")
        val responseDesc: String,
        @SerializedName("sessionLang")
        val sessionLang: String )

数据消费类:

@Entity
data class DataConsumption(
        @Id(assignable = true)
        var id: Long? = null,

        @Backlink
        @Transient
        @SerializedName("listDivisions")
        var listDivisions: List<Divisions>
)

和师类

@Entity
data class Divisions(
        @Id(assignable = true)
        var id: Long? = null,
        @SerializedName("aggregateBalance")
        val aggregateBalance: String,
        @SerializedName("aggregateConsumption")
        val aggregateConsumption: String,
        @SerializedName("division")
        val division: String,
        @Backlink
        @Transient
        @SerializedName("listConsumption")
        var listConsumption: List<Consumption>,
        @SerializedName("unit")
        val unit: String
)

Divison 类包含消费列表

@Entity
data class Consumption(
        @Id(assignable = true)
        var id: Long? = null,
        @SerializedName("aggregateConsumption")
        val aggregateConsumption: String,
        @SerializedName("billingPeriod")
        val billingPeriod: String
)

我无法找到是否需要任何类型的自定义转换器或我还需要做什么。

如果我尝试从 ObjectBox 读取保存的数据,这就是我得到的:

ConsumptionDashboardResponse(id=4, data=null, responseCode=200, responseDesc=SUCCESS, sessionLang=AR)

【问题讨论】:

    标签: android database sqlite android-room objectbox


    【解决方案1】:

    Transient 字段没有保留在数据库中。如果您必须存储非原始类型的属性,请使用relationships 或创建type converters

    【讨论】:

      猜你喜欢
      • 2021-09-10
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      • 2015-08-15
      相关资源
      最近更新 更多